ctsTraffic
ctsTraffic copied to clipboard
Bad UDP sending performance for 10 GBit/s
Having the CPU:
AMD Ryzen 9 3900X 12-Core Processor
Base speed: 3.80 GHz
Sockets: 1
Cores: 12
Logical processors: 24
Virtualization: Disabled
Hyper-V support: Yes
L1 cache: 768 KB
L2 cache: 6.0 MB
L3 cache: 64.0 MB
Utilization 52%
Speed 4.07 GHz
Operating time 4:05:55:29
Processes 205
threads 2930
Handles 105139
And the NIC:
Supermicro 25Gb SFP28 Ethernet Controller
Adapter name: Ethernet 6
Connection type: Ethernet
IPv4 address: 192.168.137.1
IPv6-Adresse: fe80::30dd:5f6e:54b3:d73%8
Receive 0 KBit/s
Transmit 4.9 GBit/s
Disclaimer: Rx/Tx flow control is disabled to get the maximum sending speed.
Results in a maximum throughput of 5,2 Gbit/s which is very bad for a performance measuring tool. I would nearly expect 10Gbit/s.
Executed command:
ctsTraffic.exe -listen:* -PrePostSends:1 -PrePostRecvs:2 -protocol:udp -bitspersecond:10000000000 -framerate:870000 -bufferdepth:1 -streamlength:60 -consoleverbosity:1
Configured Settings
-----------------------
Protocol: UDP
Options: MsgWaitAll
IO function: MediaStream Server
IoPattern: MediaStream <UDP controlled stream from server to client>
PrePostRecvs: 2
PrePostSends: 1
Level of verification: Connections & Data
Port: 4444
Buffer used for each IO request: 1436 [0x59c] bytes
Total transfer per connection: 74959200000 bytes
UDP Stream BitsPerSecond: 10000000000 bits per second
UDP Stream FrameRate: 870000 frames per second
UDP Stream BufferDepth: 1 seconds
UDP Stream StreamLength: 60 seconds (52200000 frames)
UDP Stream FrameSize: 1436 bytes
Accepting connections on addresses:
0.0.0.0:4444
[::]:4444
Server-accepted connections before exit : 0xffffffffffffffff
Legend:
* TimeSlice - (seconds) cumulative runtime
* Streams - count of current number of UDP streams
* Bits/Sec - bits streamed within the TimeSlice period
* Completed Frames - count of frames successfully processed within the TimeSlice
* Dropped Frames - count of frames that were never seen within the TimeSlice
* Repeated Frames - count of frames received multiple times within the TimeSlice
* Stream Errors - count of invalid frames or buffers within the TimeSlice
TimeSlice Bits/Sec Streams Completed Dropped Repeated Errors
0.009 0 0 0 0 0 0
5.012 1531552697 10 0 0 0 0
10.020 5197182210 10 0 0 0
I also tested this with -PrePostSends:[4,3,2,1] -PrePostRecvs:[16,8,4,2]