第 31 章 配置操作系统以优化对网络资源的访问
这部分论述了如何配置操作系统,以呈现对其工作负载中网络资源进行优化的访问。网络性能问题有时是硬件故障或出现故障的基础架构的结果。解决这些问题不在本文档的讨论范围之内。
TuneD
服务提供很多不同的配置集,以便在多个特定用例中提高性能:
-
latency-performance
-
network-latency
-
network-throughput
31.1. 监控和诊断性能问题的工具
以下是 Red Hat Enterprise Linux 9 中的可用工具,用于监控系统性能并诊断与网络子系统相关的性能问题:
-
ss
实用程序可打印有关套接字的统计信息,让管理员能够随着时间的推移评估设备性能。默认情况下ss
显示已建立的连接的非侦听套接字。利用命令行选项,管理员可以过滤出有关特定套接字的统计信息。红帽建议在 Red Hat Enterprise Linux 中使用ss
而不是已弃用的netstat
-
ip
实用程序允许管理员管理和监控路由、设备、路由策略和隧道。ip
monitor 命令可以持续监控设备、地址和路由的状态。使用-j
选项以 JSON 格式显示输出,进一步提供给其他实用程序来自动执行信息处理。 -
dropwatch
是一个交互式工具,由dropwatch
软件包提供。它监控并记录内核丢弃的数据包。 -
ethtool
工具可让管理员查看和编辑网络接口卡设置。使用此工具观察统计信息,如该设备中丢弃的数据包数量(某些设备)。使用ethtool -S device name
命令,查看您要监控的设备计数器的状态。 -
/proc/net/snmp
文件显示snmp
代理用于 IP、ICMP、TCP 和 UDP 监控和管理的数据。定期检查此文件可帮助管理员识别异常值,从而识别潜在的性能问题。例如,/proc/net/snmp
文件中的 UDP 输入错误 (InErrors
) 的增加可能代表套接字接收队列中的瓶颈。 -
nstat
工具监控内核 SNMP 和网络接口统计信息。此工具从/proc/net/snmp
文件中读取数据,并以人类可读格式显示信息。 默认情况下,由 systemtap-client 软件包提供的
SystemTap
脚本安装在/usr/share/systemtap/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/systemtap/examples/profiling
目录中。-
-
BPF Compiler Collection(BCC)是一个库,可帮助创建扩展的 Berkeley Packet Filter(
eBPF
)程序。eBPF
程序的主要工具是在不需要额外的开销或存在安全问题的情况下,分析操作系统性能和网络性能。
其他资源
-
ss(8)
,ethtool(8)
,nettop(1)
,ip(8)
,dropwatch(1)
, andsystemtap(8)
man page -
/usr/share/systemtap/examples/network
目录 -
/usr/share/doc/bcc/README.md
file - 如何编写 NetworkManager 分配程序脚本以应用 ethtool 命令?Red Hat Knowlegebase solution
- 配置 ethtool offload 功能