Benchmarking Network Performance of NI PXIe-8238 or PXIe-8240

Updated Jan 15, 2024

Environment

Hardware

  • PXIe-8238
  • PXIe-8240

The PXIe-8238 is a high-performance 10-Gigabit ethernet SFP+ interface for PXI Express based on the Intel 82599 10Gb ethernet controller. It includes two 10-Gigabit ethernet SFP+ ports in a single-slot PXI Express module and is compatible with both copper and fiber optic cabling.

The PXIe-8240 is a high-performance 40-Gigabit Ethernet QSFP+ interface for PXI Express based on the Intel XL710 40Gb Ethernet controller. It includes two 40-Gigabit Ethernet QSFP+ ports in a single-slot PXI Express module and is compatible with both copper and fiber optic cabling.

Benchmarking the network performance allows us to verify that the setup is capable of achieving the maximum throughput.
 

Follow the steps below to do the benchmarking:
  1. Setup the hardware with one of the setup shown below. See What are the Supported Modules and Cables for PXIe-8238 and PXIe-8240? for the compatible adapters and cables choice. For PXIe-8238, maximum throughput is achievable with PXI Express Gen2 x8, whereas for PXIe-8240, maximum throughput is achievable with PXI Express Gen3 x8. Refer to backplane diagram from your PXI Chassis Manual and ensure that PXI peripheral modules are positioned such that each NI Ethernet module is getting enough bandwidth from the controller.
EthernetSetup1.png
EthernetSetup2.png
  1. Refer to (external link) Change TCP/IP settings and setup a unique IP address for each Ethernet port, 2 unique IP addresses for the single port setup and 4 unique IP addresses for the dual port transmit setup. E.g. 192.168.0.1, 192.168.0.2, 192.168.0.3, 192.168.0.4. 
  2. If you are using PXIe-8240, ensure that Jumbo Frames are enabled and maximum MTU is used. Refer to How to change MTU Settings in Windows 10.
  3. Download NTTTCP for throughput testing. Run the transmit command on chassis 1 and receive command on chassis 2 for dual chassis setup.
  4. Open command prompt and navigate to the directory of the downloaded exe. Run the commands below to transmit and receive data through the ethernet ports
    • Transmit command: Ntttcp.exe -s -nic <transmit port IP address> -wu 10 -cd 10 -m 20,*,<receive port IP address> -l 64k -sb 1024k -rb 1024k -t 28800
    • Receive command: Ntttcp.exe -r -wu 10 -cd 10 -m 20,*,<receive port IP address> -l 64k -sb 1024k -rb 1024k -t 28800
  5. Launch Windows Task Manager to monitor Ethernet throughput under Performance tab.
EthernetUsage.png


Do note that if using UDP protocol communication, it is not capable of achieving the maximum throughput due to its large overhead for each datagram. The UDP data rate is also dependent on how fast the receiver clear out the receiving buffer.