我的服务器正在运行应用程序,并且大部分时间处于空闲状态(60-70% 的 CPU 空闲)。它们还显示每秒的 C3 转换次数非常高(每核每秒 2.5-3.5k 次),并且 C3 时间也很高(_Total 中为 58% 以上)
C3 时间据说是低功耗状态。我是否应该担心我的服务器每秒会从该状态转换 25K 次(约 3k x 8 个核心)
(Windows 服务器 2008 R2)
答案1
您的 CPU 进入这些睡眠状态是因为它没有足够的工作来保持忙碌。这是正常现象。
将 CPU 从睡眠状态(例如 C3)恢复时会产生轻微的延迟,但与浪费能源为无事可做的 CPU 供电相比,这是值得的。
如果您运行的应用程序对延迟极为敏感,并且可能需要立即从空闲状态“唤醒”(例如高频交易、实时模拟等),您可能需要考虑禁用处理器的省电功能。(烧掉一些树木并踢翻一些回收箱,您为什么这样做,为什么不呢……)
如果您不喜欢它,您可以在计算机的 BIOS 中禁用 C3(和其他 C 状态)。
还要检查 Windows 中的电源计划并确保其设置为高性能。
从 Perfmon 上的 C3 电源状态来看:
显示处理器处于 C3 低功耗空闲状态的时间百分比。% C3 时间是总处理器空闲时间的子集。当处理器处于 C3 低功耗空闲状态时,它无法保持其缓存的一致性。与 C2 相比,C3 电源状态是一种功耗更低且退出延迟更高的状态。并非所有系统都支持 C3 状态。
各种 C 状态的快速概览:
• C0 – 活动:CPU 处于开启状态。C0 为操作状态。
• C1 – 自动停止:核心时钟关闭。C1 是处理器不执行指令但可以立即返回执行状态的状态。某些处理器还支持增强型 C1 状态 (C1E),以降低功耗。
• C2 – 停止时钟:核心和总线时钟关闭。C2 是处理器保持所有软件可见状态的状态,但可能需要更长时间才能唤醒。
• C3 – 深度睡眠:时钟发生器关闭。C3 是处理器无需保持缓存一致性但保持其他状态的状态。某些处理器的 C3 状态有变化(深度睡眠、深度睡眠等),不同之处在于唤醒处理器所需的时间。
• C4 – 深度睡眠:减少 VCC
• DC4 – 更深的 C4 睡眠:进一步降低 VCC
(再次,您应该能够在 BIOS 菜单中禁用您不想要的功能。请查阅您的手册。)