Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
D
dns-probe
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1
    • Issues 1
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • adam
  • dns-probe
  • Wiki
  • Performance tests for DNS Probe 0.5.0

Last edited by Ladislav Lhotka Jul 08, 2020
Page history

Performance tests for DNS Probe 0.5.0

Test configuration

Performance testing was done on a server with following specifications:

  • CPU: Intel Xeon E5-2620@2.00 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).

Test results

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.

Probe configuration (pkts/s) / Packet processing threads 1 2 4
DPDK - Parquet 718 000 1 441 000 2 647 000
DPDK - C-DNS 1 420 000 2 739 000 5 176 000
AF_PACKET - Parquet 487 000 780 000 1 350 000
AF_PACKET - C-DNS 805 000 1 242 000 2 017 000

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.

DNS Probe performance

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 2 4
netsniff-ng 1 966 000 2 605 000 2 384 000
dnscap 1 329 000

The following tables contain the same measurements as the tables above, only with the numbers converted to Gbps.

Probe configuration (Gbps) / Packet processing threads 1 2 4
DPDK - Parquet 1,20 2,42 4,44
DPDK - C-DNS 2,38 4,60 8,69
AF_PACKET - Parquet 0,81 1,31 2,26
AF_PACKET - C-DNS 1,35 2,00 3,39
Utility (Gbps) / Packet processing threads 1 2 4
netsniff-ng 3,30 4,37 4,00
dnscap 2,23
Clone repository
  • CDNS_PCAP_sizes
  • Home
  • Performance tests for DNS Probe 0.5.0