E810-CQDA1 E810-CQDA2 E810-2CQDA2 E810-XXVDA2 E810-XXVDA4 英特尔®以太网800系列 Linux性能调优指南(第二篇 续)
4.0性能故障处理
4.1 CPU利用率
在工作负载运行时检查每个核心的CPU利用率。
注意:与总体CPU利用率相比,每个核心的利用率与性能更相关,因为它提供了每个网络队列的CPU利用率。
如果只有几个线程运行网络流量,那么可能只使用了几个内核。但是,如果这些核心是100%,您的网络吞吐量可能受到CPU利用率和它的限制是时候:
•调整IRQ调节/环大小,详见5.6节。
•增加应用程序线程的数量,将CPU负载分散到更多的内核上。如果所有核心
如果您的应用程序以100%的速度运行,那么您的应用程序可能受到CPU限制而不是网络限制。
常用工具:
•top
1. 按1展开cpu列表,查看正在使用的cpu。
2. 注意利用率。
3. 注意哪些进程被列为最活跃的(列表顶部)。
•htop
可视化所有内核利用率的伟大工具。
•mpstat
下面的示例命令行在Red Hat Enterprise Linux 7.x上进行了测试。显示CPU每个核心的利用率(通过查找总空闲百分比并从100中减去),并突出显示数值超过80%用红色表示。
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
perf工具在查找可能导致高资源利用率的组件方面非常有用
在性能测试期间。它可以在工作负载期间运行,以生成可以给出的报告为进一步调查提供指导。
-在基准测试或工作负载期间开始记录:
perf record -a <benchmark command>
-根据记录的性能数据生成报告:
pref report
4.2 ice Counters
ice驱动程序为接口调试和监控提供了一长串计数器
ethtool -S ethX命令。在工作负载运行和/或运行时查看输出可能会有所帮助比较工作负载运行前后的计数器值。在调试性能问题时,比较这些计数器的输出通常会有所帮助在运行工作负载之后。
•想要获得完整的ice计数器:
ethtool -S ethX
•只看非零计数器:
watch -d ethtool -S ethX | egrep -v :\ 0 | column
需要注意的是:
•rx_drop意味着CPU服务缓冲区不够快。
•rx_dropped。Nic表示槽位/内存/系统中的资源限制。
在工作负载运行前后检查netstat -s。
netstat工具收集来自系统中所有网络设备的网络信息,因此结果可能受测试网络之外的其他网络的影响。输出netstat -s可以很好地指示Linux操作系统或内核中的性能问题。
参考操作系统调优指南,例如Red Hat Enterprise Linux Network Performance调优指南,了解更多关于一般操作系统调优的信息:
4.3 Intel统一驱动统计
英特尔还提供了一个新的框架,通过该框架,ethtool或类似工具收集的统计数据可以利用Intel以太网Linux驱动程序的通用命名方案。当使用ethtool读取信息时从以太网设备,如统计,驱动程序返回一个缓冲区,其中包含各种统计数据。这些统计信息没有标准的命名约定。两者之间存在许多差异各种英特尔以太网设备。由于这些原因和其他原因,一个通用的统计命名方案已创建。
在这里找到有关

最低0.47元/天 解锁文章
2544

被折叠的 条评论
为什么被折叠?



