Skip to content

Bad UDP sending performance for 10 GBit/s #11

@Febbe

Description

@Febbe

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]

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions