This repository includes performance test tools of dragonfly.
go install github.com/dragonflyoss/perf-tests/cmd/dfbench@latest
Install Dragonfly using Helm chart, refer to Dragonfly Helm Chart.
$ helm repo add dragonfly https://dragonflyoss.github.io/helm-charts/
$ helm install --wait --create-namespace --namespace dragonfly-system dragonfly dragonfly/dragonfly
NAME: dragonfly
LAST DEPLOYED: Thu Apr 18 19:26:39 2024
NAMESPACE: dragonfly-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
1. Get the scheduler address by running these commands:
export SCHEDULER_POD_NAME=$(kubectl get pods --namespace dragonfly-system -l "app=dragonfly,release=dragonfly,component=scheduler" -o jsonpath={.items[0].metadata.name})
export SCHEDULER_CONTAINER_PORT=$(kubectl get pod --namespace dragonfly-system $SCHEDULER_POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
kubectl --namespace dragonfly-system port-forward $SCHEDULER_POD_NAME 8002:$SCHEDULER_CONTAINER_PORT
echo "Visit http://127.0.0.1:8002 to use your scheduler"
2. Get the dfdaemon port by running these commands:
export DFDAEMON_POD_NAME=$(kubectl get pods --namespace dragonfly-system -l "app=dragonfly,release=dragonfly,component=dfdaemon" -o jsonpath={.items[0].metadata.name})
export DFDAEMON_CONTAINER_PORT=$(kubectl get pod --namespace dragonfly-system $DFDAEMON_POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
You can use $DFDAEMON_CONTAINER_PORT as a proxy port in Node.
3. Configure runtime to use dragonfly:
https://d7y.io/docs/getting-started/quick-start/kubernetes/
Install file server for testing.
kubectl apply -f https://raw.githubusercontent.com/dragonflyoss/perf-tests/main/tools/file-server/file-server.yaml
$ dfbench dragonfly
Running benchmark for all size levels by DFGET ...
+-----------------+-------+-------------+-------------+-------------+
| FILE SIZE LEVEL | TIMES | MIN COST | MAX COST | AVG COST |
+-----------------+-------+-------------+-------------+-------------+
| Nano(1B) | 3 | 528.46ms | 717.28ms | 648.17ms |
+-----------------+-------+-------------+-------------+-------------+
| Micro(1KB) | 3 | 691.76ms | 967.26ms | 798.55ms |
+-----------------+-------+-------------+-------------+-------------+
| Small(1MB) | 3 | 671.12ms | 1250.22ms | 897.32ms |
+-----------------+-------+-------------+-------------+-------------+
| Medium(10MB) | 3 | 716.83ms | 971.49ms | 816.14ms |
+-----------------+-------+-------------+-------------+-------------+
| Large(1GB) | 3 | 4855.28ms | 6069.76ms | 5526.63ms |
+-----------------+-------+-------------+-------------+-------------+
| XLarge(10GB) | 3 | 37428.71ms | 41206.96ms | 38794.96ms |
+-----------------+-------+-------------+-------------+-------------+
| XXLarge(30GB) | 3 | 102279.19ms | 139299.07ms | 118039.78ms |
+-----------------+-------+-------------+-------------+-------------+
Join the conversation and help the community.
- Slack Channel: #dragonfly on CNCF Slack
- Discussion Group: [email protected]
- Developer Group: [email protected]
- Github Discussions: Dragonfly Discussion Forum
- Twitter: @dragonfly_oss
You should check out our CONTRIBUTING and develop the project together.
Please refer to our Code of Conduct.