第 3 章 改善网络延迟
CPU 电源管理功能可能会在时间敏感的应用程序中导致不必要的延迟。您可以禁用一些或所有这些电源管理功能,以改善网络延迟。
例如,如果延迟在服务器空闲时比负载过重时高,则 CPU 电源管理设置可能会影响延迟。
禁用 CPU 电源管理功能可能会导致更高的功耗和热损失。
3.1. CPU 电源状态如何影响网络延迟 复制链接链接已复制到粘贴板!
CPU 的消耗状态(C-states)优化并减少计算机的功耗。C-states 从 C0 开始编号。在 C0 中,处理器完全加电并执行。在 C1 中,处理器完全加电,但没有执行。C-state 的值越大,CPU 关闭的组件越多。
每当 CPU 核空闲时,内置节能逻辑步骤就会介入,并尝试通过关闭各种处理器组件将核从当前 C-state 移到更高状态。如果 CPU 核必须处理数据,则 Red Hat Enterprise Linux (RHEL)会将一个中断发送给处理器,以唤醒核并将其 C-state 设置回 C0。
从深度 C-states 移回 C0 需要一些时间,因为需要给处理器的不同组件通电。在多核系统上,也可能发生许多核同时空闲,因此处于更深的 C-states 。如果 RHEL 尝试同时唤醒它们,则内核可以会产生大量进程间中断(IPI),同时所有核都从深度 C-states 返回。由于处理中断时需要锁定它,所以系统在处理所有中断过程中可能会停滞一段时间。这可能会导致应用程序在响应事件方面有大量延迟。
例 3.1. 显示每个内核处于 C-state 的次数
PowerTOP 应用程序中的 Idle Stats 页面显示 CPU 核在每个 C-state 花费的时间: