- DNSPerf 2.9.0
To run dnsperf with default settings, use the command below:
$ docker run -it guessi/dnsperf:alpine
Or run dnsperf with customized settings:
$ docker run \
-e MAX_TEST_SECONDS=60 \
-e DNS_SERVER_ADDR=8.8.8.8 \
-e MAX_QPS=1000 \
-it guessi/dnsperf:alpine
Or run dnsperf with customized testing data:
$ docker run \
-v /path/to/files:/opt/records.txt:ro \
-e MAX_TEST_SECONDS=60 \
-e DNS_SERVER_ADDR=8.8.8.8 \
-e MAX_QPS=1000 \
-it guessi/dnsperf:alpine
apply pre-configured testing deployment/pods
$ kubectl apply -f ./bench/k8s-dnsperf-bench.yaml
configmap/dns-records-config created
deployment.apps/dnsperf-deployment created
make sure the deployment is running as expected
$ kubectl get deploy dnsperf-deployment
NAME READY UP-TO-DATE AVAILABLE AGE
dnsperf-deployment 0/2 2 0 81s
find out the pod name
$ kubectl get po -l app=dnsperf
NAME READY STATUS RESTARTS AGE
dnsperf-deployment-5c5f65fc55-59pvl 1/1 Running 0 21s
dnsperf-deployment-5c5f65fc55-8bfhp 1/1 Running 0 21s
pick a pod for log output monitoring
$ kubectl logs -f dnsperf-deployment-5c5f65fc55-59pvl
wait for result output
DNS Performance Testing Tool
Version 2.9.0
[Status] Command line: dnsperf -l 60 -s 8.8.8.8 -Q 1000 -d /opt/records.txt
[Status] Sending queries (to 8.8.8.8:53)
[Status] Started at: Fri Mar 4 15:27:57 2022
[Status] Stopping after 60.000000 seconds
[Timeout] Query timed out: msg id 55720
[Timeout] Query timed out: msg id 56643
[Timeout] Query timed out: msg id 59821
[Status] Testing complete (time limit)
Statistics:
Queries sent: 60000
Queries completed: 59997 (100.00%)
Queries lost: 3 (0.01%)
Response codes: NOERROR 59997 (100.00%)
Average packet size: request 32, response 50
Run time (s): 60.003051
Queries per second: 999.899155
Average Latency (s): 0.007349 (min 0.002795, max 4154504685.515536)
Latency StdDev (s): 0.023197
Why is the pods shown as "CrashLoopBackOff"?
Pod will end its life once the `MAX_TEST_SECONDS` passed
Why is the pods restart interval so long?
Please refer to the FAQ of [Pod Lifecycle](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy)