Performance testing was done on a server with following specifications:
CPU: Intel Xeon E5email@example.com GHz
RAM: 32 GB DDR3@1600 Mhz
OS: Debian, linux kernel 5.4.0
NIC: Intel X-520-2, 2x 10 Gb
DNS traffic to this server was generated and sent by Spirent TestCenter SPT-2000A through a 10 Gbps line. All DNS traffic was sent over UDP with 33% of queries and responses containing EDNS record.
DNS Probe was run with default Sysrepo configuration with only export-format changed to cdns when measuring C-DNS performance, and coremask set to configure the number of packet processing threads (1, 2 or 4).
The following table contains results of the performance tests for DNS Probe. DNS Probe was run in four different configurations depending on the packet processing backend and export format used.
The following graph summarizes the results. It can be seen that performance scales linearly with the number of packet processing threads in all four combinations of backend and output format.
For a baseline comparison, dnscap and netsniff-ng utilities for capturing DNS traffic to PCAPs were tested on the same data set. It has to be noted that this comparison is not entirely fair because DNS Probe performs more packet processing and also matches the corresponding DNS queries and responses.
Utility (pkts/s) / Packet processing threads
1 966 000
2 605 000
2 384 000
1 329 000
The following tables contain the same measurements as the tables above, only with the numbers converted