我买了一台二手戴尔 Optiplex 5060 micro。
尽管显然是 PCIe 3,但它的速度似乎受到 PCIe 2 (2GB/s) 的限制。据记录,这种情况发生在 3070 Optiplex micro 上:https://www.reddit.com/r/Dell/comments/iifyp8 /getting_pcie_gen_2_speeds_instead_of_gen_3/
但是,当 BIOS 中启用英特尔主动电源管理(默认设置)时,它实际上会达到 1GB/s。
为什么在 BIOS 中禁用主动电源管理会将其移动到 1700MB/s-2000?我的电源是否损坏?(桌面因之前的使用而有些磨损。)
BIOS 中的此设置:
高级配置 表 33. 高级配置 选项 说明 ASPM 允许您设置 ASPM 级别。
- 自动(默认) - 设备和 PCI Express 集线器之间进行握手以确定设备支持的最佳 ASPM 模式
- 禁用- ASPM 电源管理始终关闭
- 仅 L1 - ASPM 电源管理设置为使用 L1
ASPM 是一种电源管理系统,可关闭 PCIe 链路以节省电力。结果是,虽然您可以节省电量,但它会严重损害性能。
来自维基百科主动状态电源管理(ASPM)
因此,当系统认为链路处于远程空闲状态时,它会关闭其数据和时钟。
该关闭需要时间来恢复并重新启动链路。
固件中的许多实现似乎都将这种空闲检测设置得过于激进。正如您从有关Windows 中省电模式的相关问题中看到的那样,启用相关设置以从 Windows 打开 ASPM 似乎会带来类似的问题,该问题会减慢链接速度并导致奇怪的行为,使驱动器似乎高度活跃,因为清醒的时间更加有限。
您的机器没有任何问题,只是 L1 电源状态在使链路和驱动器进入睡眠状态方面特别激进。出于偏好,您应该将该设置保留为禁用状态,以获得最佳性能。
如果您的 BIOS 设置为“自动”,则可能需要根据重复问题检查您的电源计划设置,以确保链接状态电源管理未设置为“最大”。如果将电源管理设置为“中等”,那么它应该节省一点电量,而对性能的影响要小得多。
为了解释性能损失,驱动器的速度可能无法持续使 PCIe 链路完全饱和。
PCIe 3.0 x4 链路的理论带宽约为 3.5-4GB/s,您的驱动器可管理大约一半的带宽。
结果是,链路将以突发方式运行,其中驱动器编组一些数据,通过链路快速发送数据,然后在发送另一个突发之前空闲一段时间。
这些突发可能快速且频繁,但 50% 的空闲链路很可能会欺骗固件,让其认为系统长时间没有使用它(就快速时钟速度而言,时间较长),因此在突发之间,驱动器被发送到睡觉。当需要更多数据时,L1 睡眠状态意味着链路需要更长的时间才能恢复并可用,而损失的时间实际上会降低您的性能。