The following tables provide recommendations for tuning settings for different applications.
Recommended Throughput Tuning
The following table shows recommended tuning settings for throughput.
| Tuning Parameter | How? |
|---|---|
| MTU Size | Configure to maximum supported by network:
|
| Interrupt moderation | Leave at default (Enabled). |
| TCP/IP Checksum Offload | Leave at default (Enabled). |
| TCP Segmentation Offload | Leave at default (Enabled). |
| TCP Large Receive Offload | Leave at default (Enabled). |
| performance_profile | Set to throughput. |
| TCP Protocol Tuning |
Leave at default. |
| Receive Side Scaling (RSS) | Application dependent. |
| Interrupt affinity and irqbalance service |
Interrupt affinity settings are application dependent. Disable irqbalance service:
Reload the drivers to use the driver default interrupt affinity. |
| Buffer Allocation Method |
Leave at default. Some applications might benefit from specific setting. The AMD Solarflare driver now supports a single optimized buffer allocation strategy and any value set by the rx_alloc_method parameter is ignored. |
| PCIe Lane Configuration | Ensure the adapter is in an x8 slot, and that current speed (not the supported speed) reads back either as "x8" followed by the maximum speed that is mutually supported by the server and the adapter, or as “x8 and Unknown”. |
| CPU Speed Service (cpuspeed) | Leave enabled. |
| Memory bandwidth | Ensure memory uses all memory channels on system motherboard. |
Recommended Latency Tuning
The following table shows recommended tuning settings for latency.
| Tuning Parameter | How? |
|---|---|
| MTU Size | Configure to maximum supported by network:
|
| Interrupt moderation | Disable with:
|
| TCP/IP Checksum Offload | Leave at default (Enabled). |
| TCP Segmentation Offload | Leave at default (Enabled). |
| TCP Large Receive Offload | Disable using sysfs:
|
| TCP Protocol Tuning | Leave at default, but changing does not impact latency. |
| Receive Side Scaling | Application dependent. |
| Interrupt affinity and irqbalance service |
Interrupt affinity settings are application dependent. Disable irqbalance service:
Reload the drivers to use the driver default interrupt affinity. |
| Buffer Allocation Method |
Leave at default. Some applications might benefit from specific setting. The AMD Solarflare driver now supports a single optimized buffer allocation strategy and any value set by the rx_alloc_method parameter is ignored. |
| PCIe Lane Configuration | Ensure the adapter is in an x8 slot, and that current speed (not the supported speed) reads back either as "x8" followed by the maximum speed that is mutually supported by the server and the adapter, or as “x8 and Unknown”. |
| CPU Speed Service (cpuspeed) | Disable with:
|
| CPU Power Service (cpupower) | Disable with:
|
| Tuned Service | Experiment using the network-latency or cpu-partitioning profiles.
Alternatively, disable this with:
|
| Busy poll (Linux 3.11 and later) | Enable with a value of 50µs:
|
| Memory bandwidth | Ensure memory uses all memory channels on system motherboard. |
Recommended Forwarding Tuning
The following table shows recommended tuning settings for forwarding.
| Tuning Parameter | How? |
|---|---|
| MTU Size | Configure to maximum supported by network:
|
| Interrupt moderation | Configure an explicit interrupt moderation interval by setting the following driver options (see Module Parameters):
|
| TCP/IP Checksum Offload | Leave at default (Enabled). |
| TCP Segmentation Offload | Leave at default (Enabled). |
| TCP Large Receive Offload | Disable using sysfs:
|
| performance_profile | Set to latency. |
| TCP Protocol Tuning |
Leave at default. |
| Receive Side Scaling (RSS) |
Leave the Ensure the |
| Interrupt affinity and irqbalance service |
Interrupt affinity. Affinitize each interface to its own CPU (if possible select CPUs on the same Package). Refer to Interrupt Affinity. Disable irqbalance service:
|
| Buffer Allocation Method |
Leave at default. Some applications might benefit from specific setting. The AMD Solarflare driver now supports a single optimized buffer allocation strategy and any value set by the rx_alloc_method parameter is ignored. |
| Buffer Recycling | Make receive buffer recycling more aggressive by setting the following driver option (see Module Parameters):
|
| PIO | When supported (X2-series adapters and earlier), disable PIO by setting the
following driver option (see Module Parameters):
|
| Transmit push | Disable transmit push by setting the following driver option (see Module Parameters):
|
| Direct copying | Disable copying directly from the network stack for transmits by setting the following driver option (see Module Parameters):
|
| Ring sizes |
Change the number of descriptor slots on each ring by setting the following driver options (see Module Parameters):
Note: As the
tx_irq_mod_usec interrupt moderation
interval increases, the number of required tx_ring and rx_ring descriptor slots also increases. Insufficient descriptor slots
cause dropped packets. |