PowerDNS Recursor feels very slow

Those examples don’t really present any substance relating to your issue.

  • 10ms looks like a LAN round-trip
  • You’re recursively querying a much longer FQDN than a TLD. The root servers local cache is just a very small piece in the full resolution of www.ncbi.nlm.nih.gov

A typical query on a properly set local resolver will present with a delay penalty on a cache miss and a much faster cached response:

Cache Miss:

❯ dig @10.93.17.50 www.ibm.com A

; <<>> DiG 9.18.26 <<>> www.ibm.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65534
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.ibm.com.                   IN      A

;; ANSWER SECTION:
www.ibm.com.            1598    IN      CNAME   outer-global-dual.ibmcom-tls12.edgekey.net.
outer-global-dual.ibmcom-tls12.edgekey.net. 17517 IN CNAME e7817.dscx.akamaiedge.net.
e7817.dscx.akamaiedge.net. 20   IN      A       23.13.161.10

;; Query time: 70 msec
;; SERVER: 10.93.17.50#53(10.93.17.50) (UDP)
;; WHEN: Thu May 09 16:02:06 EDT 2024
;; MSG SIZE  rcvd: 148

Cached response:

❯ dig @10.93.17.50 www.ibm.com A

; <<>> DiG 9.18.26 <<>> www.ibm.com A
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47131
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.ibm.com.                   IN      A

;; ANSWER SECTION:
www.ibm.com.            1596    IN      CNAME   outer-global-dual.ibmcom-tls12.edgekey.net.
outer-global-dual.ibmcom-tls12.edgekey.net. 17515 IN CNAME e7817.dscx.akamaiedge.net.
e7817.dscx.akamaiedge.net. 18   IN      A       23.13.161.10

;; Query time: 6 msec
;; SERVER: 10.93.17.50#53(10.93.17.50) (UDP)
;; WHEN: Thu May 09 16:02:08 EDT 2024
;; MSG SIZE  rcvd: 148