Intel® Ethernet 800 Series
Linux Performance Tuning Guide
CPU Utilization
Check CPU utilization per core while workload is running.
If you have only a few threads running network traffic, you might only have a few cores being used. However, if those cores are at 100%, your network throughput is likely limited by CPU utilization and it is time to:
- Tune IRQ moderation/ring size as detailed in Ring Size.
- Increase the number of application threads to spread out the CPU load over more cores. If all cores are running at 100%, your application might be CPU bound rather than network bound.
Commonly available tools:
- top
- htop
Great tool for visualizing utilization across all cores.
- mpstat
The following example command line was tested on Red Hat Enterprise Linux 7.x. It displays CPU utilization per core (by finding the total percent idle and subtracting from 100) and highlights the values above 80% in red.
mpstat -P ALL 1 1 | grep -v Average | tail -n +5 | head -n -1 | awk '{ print (100-$13)}' | egrep -- color=always '[^\.][8-9][0-9][\.]?.*|^[8-9][0-9][\.]?.*|100|' | column - perf
The perf tool is very helpful in finding what components might be causing high resource utilization during performance testing. It can be run during a workload to generate a report that can give guidance for further investigation.