Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第 9 章 网络

网络子系统由多个具有敏感连接的不同部分组成。因此,红帽企业 Linux 7 联网旨在为大多数工作负载提供最佳性能,并自动优化其性能。因此,通常不需要手动调优网络性能。本章讨论可对功能网络系统进行进一步的优化。
网络性能问题有时是硬件故障或基础架构故障造成的。解决这些问题超出了本文档的范围。

9.1. 注意事项

为了做出良好的调优决策,您需要深入了解红帽企业 Linux 中的数据包接收。本节介绍如何接收和处理网络数据包,以及如何在何处发生潜在瓶颈。
发送到 Red Hat Enterprise Linux 系统的数据包由网络接口卡(NIC)接收,并放置在内部硬件缓冲或环形缓冲区中。然后 NIC 发送硬件中断请求,提示创建软件中断操作来处理中断请求。
作为软件中断操作的一部分,数据包从缓冲区传输到网络堆栈。根据数据包和网络配置,数据包随后被转发、丢弃或传递到应用的套接字接收队列,然后从网络堆栈中删除。此过程将继续,直到 NIC 硬件缓冲区中没有数据包,或者传输了特定数量的数据包(在 /proc/sys/net/core/dev_weight中指定)。
红帽客户门户网站中提供的 Red Hat Enterprise Linux 网络性能调优指南 包含有关 Linux 内核的数据包接收的信息,并涵盖 NIC 调优的以下区域: softirq misses (netdev budget), tuned tuning daemon, numad NUMA 守护进程, CPU 电源状态, 中断平衡, 暂停帧, 中断 coalescence, 适配器队列(netdev backlog), 适配器 RX 和 TX 缓冲区、适配器 TX 队列、模块卸载、Jumbo Frames、TCP 和 UDP 协议调整以及 NUMA 本地功能。

9.1.1. Tune 之前

网络性能问题通常是硬件故障或基础架构故障造成的。红帽强烈建议您在开始调优网络堆栈之前验证您的硬件和基础架构是否按预期工作。

9.1.2. Packet Reception 中的瓶颈

虽然网络堆栈在很大程度上是自我优化的,但网络数据包处理期间存在多个点,它们可能会成为瓶颈并降低性能。
NIC 硬件缓冲或环缓冲
如果丢弃了大量数据包,硬件缓冲区可能会成为瓶颈。有关监控系统中丢弃数据包的详情请参考 第 9.2.4 节 “ethtool”
硬件或软件中断队列
中断可能会增加延迟和处理器争用。有关处理器如何处理中断的详情请参考 第 6.1.3 节 “中断请求(IRQ)处理”。有关如何在系统中监控中断处理的详情请参考 第 6.2.3 节 “/proc/interrupts”。有关影响中断处理的配置选项,请参阅 第 6.3.7 节 “在 AMD64 和 Intel 64 中设置 Interrupt Affinity”
应用程序的套接字接收队列
应用程序接收队列中的瓶颈由大量没有复制到请求应用程序的数据包表示,或者 /proc/net/snmp 中的 UDP 输入错误(错误)增加。有关监控您的系统以了解这些错误的详情,请参考 第 9.2.1 节 “SS”第 9.2.5 节 “/proc/net/snmp”