guessi/dnsperf

By guessi

Updated 22 days ago

DNS Performance Testing with Kubernetes Pods

Image
Networking
Developer Tools

1M+

DNS Performance Testing with Kubernetes Pods

Docker StarsDocker PullsDocker Automated

Integrated Items

  • DNSPerf 2.14.0

🔥 Stress Test 🔥 Benchmark with Kubernetes Pods

Apply pre-configured testing deployment/pods

kubectl apply -f https://raw.githubusercontent.com/guessi/dnsperf-bench/main/k8s-dnsperf-bench.yaml

Make sure the deployment is running as expected

kubectl get pods -l app=dnsperf
NAME                       READY   STATUS    RESTARTS   AGE
dnsperf-7b9cc5b497-d5nfs   1/1     Running   0          1m16s

Check benchmark results

kubectl logs -f deployments/dnsperf
...
Statistics:
  ...
  Queries per second:   17241.513774
  ...

Even more stress 🔥🔥🔥

kubectl scale deployments/dnsperf --replicas 10

🤔 Evaluate why there would have performance issue

Does CoreDNS running expected version?

kubectl describe deployments coredns -n kube-system | grep 'Image:'

Does CoreDNS running with expected Corefile?

kubectl describe configmap coredns -n kube-system

Does CoreDNS running with correct resources configuration?

kubectl get deployments coredns -n kube-system -o json | jq -r '.spec.template.spec.containers[0].resources'

Does CoreDNS need more CPU/Memory resources?

kubectl top pods -n kube-system -l k8s-app=kube-dns

How many CoreDNS Pods running? Have you enabled CoreDNS AutoScaler?

kubectl get deployments coredns -n kube-system

DO NOT report bug without trying to do performance tuning. If you try to gain too much stress without tuning CoreDNS configureation, it is expected to have some TIMEOUT or packet losts. It's expected if you don't change.

📑 Reference

Docker Pull Command

docker pull guessi/dnsperf