The DNS echo server enables the user to stipulate how many times it should fork into separate means and how many threads (if any) to start within every cycle. It also holds several I/O models, including the standard “blocking” I/O and non-blocking I/O using explicit poll(2) or select(2) calls, or via libevent. Finally, it also helps to lock processes or threads to a different CPU core for multi-core systems.
To additional eliminate test variability, the irqbalance service was disabled, and each TxRx queue was locked to CPU core seven by executing the subsequent command for every IRQ number associated with each TxRx queue:
# echo 80 > /proc/sys/27/smp_affinity
# echo 80 > /proc/sys/34/smp_affinity
Few results allow the kernel to move the DNS echo server processes randomly between CPU cores, but only core number 7 handles network traffic.
Main highlights of the DnsPerf
- You can choose results by type; for Authoritative DNS Providers, Raw Performance, Resolver Simulation, Uptime and Quality.
- There are Raw Performance, Uptime and Quality for Public DNS Reslovers and DNS Root Servers.
- You can choose the world data or data for the appropriate continent.
- You can access analytics data for the particular provider or all of them.
- You will be equipped with daily graphs for Uptime, Quality and Performance.
- You can use this tool to compare DNS providers and their Performance in different regions. As well as debug your self hosted DNS servers and test routing logic. You can see ‘direct’ statistics for the Performance and use any Public DNS resolvers from the list.
- The map of the servers that provide synthetic tests can be seen on the Network page.
- You can use our servers to test any of your resources worldwide or from any country/continent where our servers are set.
- Share your test results via a unique test link (by this link, results are stored for 30 days)
- The servers and the results are shown on the map.
With all network traffic supervised by core 7, the most optimal (single-core) performance is found by forcing the “closest” CPU core to check the DNS echo server. Letting core 7 do all the job is less efficient. The more moderate overall Performance of cores 1 and 3 is imperceptibly hard. The current theory is that there is more contention for bandwidth on the memory bus when the two separate dual-core dies need to access the system-wide shared memory than when cores from different packages need to.
The best sequence is when the DNS echo server is run both on the same core as the one controlling the network traffic and on the other core from the same die that shares the same L2 cache. This combination reached over 390 kbps – some 45 – 65% higher than the results found for most other varieties.
Performance testing is a black art. It is hugely dependent on many variables, including CPU architecture, interrupts behavior, network card facilities, and CPU core affinity. Furthermore, producing reliable results requires a significant level of understanding of the systems hosting the tests. This benchmarking software is exercising those systems and the software under test itself. Therefore, it is essential to ensure that you do not simply measure the limitations of the benchmarking system, as seen in the first graph.