Performance impact of various features
ISC support gets a lot of questions about how to improve BIND server performance, and whether enabling a specific feature will improve or degrade performance.
Users considering enabling various features, including those intended to improve performance, have no guidelines about what to expect. Today, all they can do is enable the feature and wait and see if performance goes up or down. Operators of highly available systems can't be expected to experiment on production servers when there is a performance problem.
Features that do or could be expected to impact performance include: RRL, fetches per server, minimal responses, prefetch, with-tuning-large, dnstap, query logging, logging level settings, DNSSEC validation(?), RPZ (?),
Realizing that local traffic and platform will affect the results, can we profile these features in a lab setting and provide some rules of thumb on the likely impact such as:
- enabling this feature is likely to cost you 8 - 12% QPS performance?
- enabling this feature is likely to improve performance 2 - 5% if you have, eg. a large number of zones with few records in each
- enabling this feature is likely to chew up another x% of your memory (in the XYZ scenario)
It would be very helpful to figure out a way to profile resolvers as well as authoritative servers. I realize this is a hard problem and would require getting a query sample from some operator(s), possibly via OARC (to ensure anonymity).
the interesting metrics include:
- queries per second that can be successfully responded to
- memory utilization (platform statistic)
- cache hit rate