6.2. 监控和诊断性能问题

红帽企业版 Linux 7 提供大量有用的工具来监控系统性能和诊断与网络子系统有关的性能问题。本章对可用工具进行了概述并举例说明如何使用它们来监控和诊断与网络相关的性能问题。

6.2.1. ss

ss 是一个命令行实用程序,显示关于 socket的数据信息,允许管理员随时评估设备性能。ss 列表会默认打开没有注意到但已建立了连接的 TCP socket,但是会提供大量有用的选项来给管理员筛选特定的 socket数据。
红帽推荐在红帽企业版 Linux 7 中使用 ss 来替代 netstat
ssiproute 数据包提供。更多信息请见手册页:
$ man ss

6.2.2. ip

ip 实用程序允许管理员管理和监控线路、设备、路由策略及通道。ip monitor 指令可以持续监控设备、地址和线路的状况。
ipiproute 数据包提供。使用 ip 详情请见手册页:
$ man ip

6.2.3. dropwatch

Dropwatch 是一个交互工具,用来监控和记录内核弃置的数据包。
更多信息,请见 dropwatch 手册页:
$ man dropwatch

6.2.4. ethtool

ethtool 实用程序允许管理员查看和编辑网络接口卡的设置。它有助于观察特定设备的数据,例如该设备弃置的数据包数量。
用户可以使用 ethtool -S 查看特定设备的计数状态和想要监控的设备名称。
$ ethtool -S devname
更多信息,请见手册页:
$ man ethtool

6.2.5. /proc/net/snmp

/proc/net/snmp 文件显示的数据是 snmp 用来代理监控和管理 IP、ICMP、TCP和 UDP 的。定期检查此文件可以协助管理员识别异常值,从而识别潜在的性能问题。例如,UDP 输入错误(InErrors)增加,且错误在/proc/net/snmp 中,就意味着 socket接收队列中出现了瓶颈。

6.2.6. 使用 SystemTap 监控网络

红帽企业版 Linux 7 SystemTap 初学者指南》包含很多有用的示例脚本以分析和监控网络性能。
以下 SystemTap 示例脚本与网络有关,可能有助于诊断网络性能问题。默认安装在 /usr/share/doc/systemtap-client/examples/network 目录下。
nettop.stp
每 5 秒显示进程列表(进程标识符和指令),包括发送和接收的数据包,以及间隔时间里进程发送和接收的数据量。
socket-trace.stp
在 Linux 内核 net/socket.c 文件中检测每个功能,并显示跟踪数据。
tcp_connections.stp
显示每个系统接受的新传入的 TCP 连接信息。信息包括 UID 、接受该连接的指令、指令的进程标识符、连接端口和发起请求的 IP 地址。
dropwatch.stp
每 5 秒显示内核释放的 socket缓冲区数量。
红帽企业版 Linux 7 SystemTap 初学者指南》可从 http://access.redhat.com/site/documentation/Red_Hat_Enterprise_Linux/ 中获取。