-q num_queries Sets the maximum number of outstanding requests. When this value is reached, dnsperf stops sending requests until either response is received or its requests time out. The default value is 100.
DNS Dnsperf
For example, if you set "-q" to 100, dnsperf will generate at most 100 queries and wait for their responses or timeout. If it gets 5 responses, it will generate 5 new queries, and again the queue will be full at 100.If the dns server is fast, it may happen that the queue limit of 100 is never reached, and dnsperf will make DNS queries as fast as possible.
The following graph shows the mean, minimum, and maximum throughput obtained for different numbers of server processes running with the blocking I/O model. Each data point is the result of ten 30-second runs of dnsperf using its default command line parameters. A bare minimum tuning was done on the UDP read/write buffers on both client and server by having the sysctl variablesnet.core.rmem and net.core.wmem both set to a maximum and default value of 16 MB each.
In order to eliminate client-side effects from the testing a variety of dnsperf settings were tried, eventually settling empirically on apparently optimal settings of -c 8 to make dnsperf act as multiple clients, and -q 500 to allow for 500 maximum outstanding requests. The defaults are -c 1 -q 100. It was also determined that using taskset to restrict dnsperf to using only one of the two client CPUs was more optimal. The reason for the latter remains unclear.
For two or three concurrent server processes both the average and maximum throughput are substantially increased (the latter by 45% to 348 kqps from a previous high of 239 kqps). The variability, however, is even further increased for some tests than before. It should also be noted that the increase in the maximum throughput further reinforces the theory that the untuned dnsperf parameters used to generate the first graph were themselves limiting the maximum throughput of the system as a whole.
The number of IRQs that have been handled for each combination of TxRx queue and CPU core can be examined in /proc/interrupts. As each 30-second run of dnsperf starts the counters start incrementing, but at most only 3 individual queues were observed getting involved in handling the network traffic, and therefore only 3 CPU cores.
The search service can find package by either name (apache),provides(webserver), absolute file names (/usr/bin/apache),binaries (gprof) or shared libraries (libXm.so.2) instandard path. It does not support multiple arguments yet... The System and Arch are optional added filters, for exampleSystem could be "redhat", "redhat-7.2", "mandrake" or "gnome", Arch could be "i386" or "src", etc. depending on your system. System Arch RPM resource dnsperfThis is dnsperf, a collection of DNS server performance testing tools.For more information, see the dnsperf(1) and resperf(1) man pages.
We did do some development work on it to add DNS as a proof of concept,the result can be found in the dns-client branch in this GitHubrepo. It provedreasonably easy to get a DNS plugin doing synchronous queries workingover UDP, TCP and TCP/TLS. Even taking successive lookups from a queriesfile as used by dnsperf. Our specific observations are:
A sample query stream file can also be downloaded from DNS-OARC's DNSPerf and ResPerf site at -oarc.net/tools/dnsperf, but this may not be similar in profile to the query traffic that your servers would be expected to be handling. 2ff7e9595c
Comments