Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bad UDP sending performance for 10 GBit/s #11

Open
Febbe opened this issue Apr 26, 2021 · 0 comments
Open

Bad UDP sending performance for 10 GBit/s #11

Febbe opened this issue Apr 26, 2021 · 0 comments

Comments

@Febbe
Copy link

Febbe commented Apr 26, 2021

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]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant