第 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 程序的主要工具是在不需要额外的开销或存在安全问题的情况下,分析操作系统性能和网络性能。

其他资源