Tuning Throughput Performance for Intel® Ethernet Adapters

Documentation

Install & Setup

000005811

05/16/2019

What should I do for adapter installations?

  • Install the Intel® Network Adapter in a slot that matches or exceeds the bus width of the adapter.
    • Example 1: If you have a 32-bit PCI adapter, put it in a 32-bit or 64-bit PCI or PCI-X* slot.
    • Example 2: If you have a 64-bit PCI-X adapter, put it in a 64-bit PCI-X slot.
    • Example 3: If you have an x4 PCIe* adapter, put it in an x4, x8, or x16 PCIe* slot.
    Note Some PCIe* slots are physically wired with fewer channels than the dimensions of the slot would indicate. In that case, a slot that matches an x8 dimensions would have the functionality of an x4, x2, or x1 slot. Check with your system manufacturer.
     
  • For PCI and PCI-X*, install the Intel Network Adapter in the fastest available slot.
    • Example 1: If you have a 64-bit PCI adapter, put it in a 66 MHz 64-bit PCI slot.
    • Example 2: If you have a 64-bit PCI-X adapter, put in a 133 MHz (266 or 533 if available) 64-bit PCI-X slot.
    Note The slowest board on a bus dictates the maximum speed of the bus. Example: When a 66MHz and a 133 MHz add-in card are installed in a 133 MHz bus, all devices on that bus function are at 66 MHz.
     
  • Try to install the adapter in a slot on a bus by itself. If add-in cards share a bus, they compete for bus bandwidth.

How should I optimize my driver settings?

  • For Intel® Ethernet 10 Gigabit Converged Network Adapters, you can choose a role-based performance profile to automatically adjust driver configuration settings.
  • Reduce Interrupt Moderation Rate to Low, Minimal, or Off:
    • Also known as Interrupt Throttle Rate (ITR).
    • The default is Adaptive for most roles.
    • The low latency profile sets the rate to off.
    • The storage profiles set the rate to medium.
    Note Decreasing Interrupt Moderation Rate increases CPU utilization.
     
  • Enable Jumbo Frames to the largest size supported across the network (4KB, 9KB, or 16KB).
    • The default is Disabled.
    Note Enable Jumbo Frames only if devices across the network support them and are configured to use the same frame size.
     
  • Disable Flow Control.
    • The default is Generate & Respond.
    Note Disabling Flow Control can result in dropped frames.
     
  • Increase the Transmit Descriptors buffer size.
    • The default is 256. Maximum value is 2048.
    Note Increasing Transmit Descriptors increases system memory usage.
     
  • Increase the Receive Descriptors buffer size.
    • The default is 256. Maximum value is 2048.
    Note Increasing Receive Descriptors increases system memory usage.
     

What should I do for TCP settings?

  • Tune the TCP window size (applies to Windows* Server editions before Windows Server 2008*).
    Notes

    Optimizing your TCP window size can be complex as every network is different. Documents are available on the Internet that explain the considerations and formulas used to set window size.

    Before Windows Server 2008*, the network stack used a fixed-size receive-side window. Starting with Windows Server 2008, Windows provides TCP receive window auto-tuning. The registry keywords TcpWindowSize, NumTcbTablePartitions, and MaxHashTableSize are ignored starting with Windows Server 2008.

     

What are the best things I should do for performance testing?

  • When copying a file from one system to another (1:1) using one TCP session, throughput is significantly lower than doing multiple simultaneous TCP sessions. Low throughput performance on 1:1 networks is because of latency inherent in a single TCP/IP session. A few file transfer applications support multiple simultaneous TCP streams. Some examples are: gFTP* and FDT*.

    performance benefit of using multiple TCP streams

    This graph is intended to show (not guarantee) the performance benefit of using multiple TCP streams. These are actual results from an Intel® 10 Gigabit CX4 Dual Port Server Adapter, using default Advanced settings under Windows 2008* x64.

     
  • Direct testing of your network interface throughput capabilities can be done by using tools like: iperf* and Microsoft NTttcp*. You can configure these tools to use one or more streams.
  • When copying a file from one system to another, the hard drives of each system can be a significant bottleneck. Consider using high RPM, higher throughput hard drives, striped RAIDs, or RAM drives in the systems under test.
  • Systems under test should connect through a full-line rate, non-blocking switch.
  • Theoretical Maximum Bus Throughput:
    • PCI Express* (PCIe*) Theoretical Bi-Directional Bus Throughput.
      PCI Express Implementation Encoded Data Rate Unencoded Data Rate
      x1 5 Gb/sec 4 Gb/sec (0.5 GB/sec)
      x4 20 Gb/sec 16 Gb/sec (2 GB/sec)
      x8 40 Gb/sec 32 Gb/sec (4 GB/sec)
      x16 80 Gb/sec 64 Gb/sec (8 GB/sec)
       
    • PCI and PCI-X Bus Theoretical Bi-Directional Bus Throughput.
      Bus and Frequency 32-Bit Transfer Rate 64-Bit Transfer Rate
      33-MHz PCI 1,064 Mb/sec 2,128 Mb/sec
      66-MHz PCI 2,128 Mb/sec 4,256 Mb/sec
      100-MHz PCI-X Not applicable 6,400 Mb/sec
      133-MHz PCI-X Not applicable 8,192 Mb/sec
       
      Note You can check the PCIe* link width in Windows* through adapter properties. Select the Link Speed tab and click the Identify Adapter button. Intel® PROSet for Windows* Device Manager must be loaded for this utility to function.
 
Related topics
User Guide provides release notes, configuration details, and known issues
Advanced driver settings for 10/25/40 Gigabit Ethernet Adapters
Maximizing File Transfer Performance Using 10Gb Ethernet and Virtualization (Linux* and VMware vSphere*)
Performance Tuning Guidelines for Windows Server 2012*
Performance Tuning Guidelines for Windows Server 2008 R2*
Performance Tuning Guidelines for Windows Server 2008*
TCP Features of Windows 2000 and Windows Server 2003*
Improving Measured Latency in Linux* for Intel® 82575/82576 or 82598/82599 Ethernet Controllers
Assigning Interrupts to Processor Cores for Intel® 82575/82576 or 82598/82599 Ethernet Controllers
Low virtual network I/O performance with Intel 1Gbps NIC using igb driver explains tuning ESXi performance for certain workloads
Setting up NIC Teaming for Windows Server 2012*/2012 R2*/2016*/2019*
Teaming with Intel® Advanced Network Services