9.2. 监控和诊断性能问题
红帽企业 Linux 7 提供了很多工具,这些工具可用于监控系统性能并诊断与网络子系统相关的性能问题。本节概述了可用的工具,并提供了如何使用它们来监控和诊断网络相关性能问题的示例。
9.2.1. SS
ss 是一种命令行工具,可打印有关套接字的统计信息,允许管理员随着时间的推移评估设备性能。默认情况下,ss 列出了打开的非侦听已建立连接的 TCP 套接字,但提供了多个有用的选项,以帮助管理员过滤特定套接字的统计信息。
红帽建议在 Red Hat Enterprise Linux 7 中使用 ss 而不是 netstat。
s 由 iproute 软件包提供。如需更多信息,请参阅 man page:
$ man ss
9.2.2. ip
ip 工具可让管理员管理和监控路由、设备、路由策略和隧道。ip monitor 命令可以持续监控设备、地址和路由的状态。
IP 由 iproute 软件包提供。有关使用 ip 的详情,请查看 man page:
$ man ip
9.2.3. dropwatch
dropwatch 是一个交互式工具,用于监控和记录内核丢弃的数据包。
如需更多信息,请参阅 dropwatch 手册页:
$ man dropwatch
9.2.4. ethtool
ethtool 工具允许管理员查看和编辑网络接口卡设置。它可用于观察某些设备的统计信息,如该设备丢弃的数据包数。
您可以使用 ethtool -S 和您要监控的设备名称查看指定设备计数器的状态。
$ ethtool -S devname
如需更多信息,请参阅 man page:
$ man ethtool
9.2.5. /proc/net/snmp
/proc/net/snmp
文件显示 snmp 代理用于 IP、ICMP、TCP 和 UDP 监控和管理的数据。定期检查此文件可帮助管理员识别异常值,从而识别潜在的性能问题。例如,/proc/net/snmp
中的 UDP 输入错误(InErrors
)的增加可能会表示套接字接收队列中的瓶颈。
9.2.6. 使用 SystemTap 进行网络监控
红帽企业 Linux 7 SystemTap Beginner 指南包括几个可用于分析和监控网络性能的示例脚本。
以下 SystemTap 示例脚本与网络相关,在诊断网络性能问题时可能很有用。默认情况下,它们安装到
/usr/share/doc/systemtap-client/examples/network
目录中。
nettop.stp
- 每 5 秒,打印一个进程(进程标识符和命令)列表,其中包含发送和接收的数据包数,以及进程在该间隔期间发送和接收的数据量。
socket-trace.stp
- 引入 Linux 内核
net/socket.c
文件中的每个功能,并打印 trace 数据。 dropwatch.stp
- 每 5 秒,打印在内核中的位置释放的套接字缓冲区数量。使用
--all-modules
选项查看符号名称。
latencytap.stp
脚本记录了不同类型的延迟对一个或多个进程的影响。它每 30 秒打印延迟类型列表,按进程或进程等待的总时间降序排列。这可用于识别存储和网络延迟的原因。红帽建议将 --all-modules
选项与该脚本一起使用来更好地映射延迟事件。默认情况下,此脚本安装到 /usr/share/doc/systemtap-client-版本/examples/profiling
目录中。