Links I am going to have to dig through for learning performance tuning of the network stack:
- Tech Items – Linux NIC Interrupts Overloading Single CPUs: focuses on using mpstat for finding loads and issues
- Ottawa Linux Symposium papers: seems to have run between 2001 and 2014. Some good gems, but might be dated. Some individual listings.
- Tuning 10Gb network cards on Linux: From 2009 OLS, bucks the trend by suggesting that irqbalance be turned off
- Linux Base Driver for the Intel(R) Ethernet Controller XL710 Family with a follow on link to 10 Gb Ethernet by Mark Wagner
- Performance tuning: Intel 10-gigabit NIC by Dakini in 2012
- Monitoring and Tuning the Linux Networking Stack: Receiving Data by PackageCloud
- Introduction to Linux Interrupts and CPU SMP Affinity
- Interrupt and Process Binding from RedHat docs
- Interrupts and IRQ Tuning from RedHat docs
- UNDERSTANDING CPU USAGE IN LINUX from OpsDash
- Device Tree Usage which includes notes on interrupts and assignments based upon PCI lane assignments.
- PCI bus bridges have standardized Device Tree bindings which links to PCI Bus Binding to: IEEE Std 1275-1994 Standard for Boot (Initialization Configuration) Firmware and Open Firmware Recommended Practice: Interrupt Mapping. IMPROVE NETWORK PERFORMANCE BY SETTING PER-QUEUE INTERRUPT MODERATION IN LINUX: detailed benchmarking from intel.
# mpstat -I SUM -P ALL 1 Linux 4.9.0-4-amd64 (bnbx) 12/12/2017 _x86_64_ (8 CPU) 01:10:06 PM CPU intr/s 01:10:07 PM all 126.00 01:10:07 PM 0 4.00 01:10:07 PM 1 13.00 01:10:07 PM 2 12.00 01:10:07 PM 3 24.00 01:10:07 PM 4 29.00 01:10:07 PM 5 22.00 01:10:07 PM 6 9.00 01:10:07 PM 7 13.00
Anything over a 5,000/second is a lot, while 10-20,000/second is extreme.
To find load generator:
mpstat -I CPU -P ALL 1
(2018/01/11): Linux Performance Profiling and Monitoring: example usage of many different tools in a presenatation format
2018/01/28
- Useful kernel and driver performance tweaks for your Linux server: TimeToBleed by Joe Damato
- i/oat
2018/01/29
- 10 Gb Ethernet Mark Wagner - disable irqbalance, disable cpuspeed, use affinity, mpstat to find bottlenecks,
- How to achieve low latency with 10Gbps Ethernet - CloudFlare