我买了一台二手戴尔 OptiPlex 5060微。
尽管显然是 PCIe 3,但其速度似乎被限制在 PCIe 2(2 GB/s)上。据记录,这种情况发生在 3070 OptiPlex micro 上:https://www.reddit.com/r/Dell/comments/iifyp8/getting_pcie_gen_2_speeds_instead_of_gen_3/
但是,当在 BIOS 中启用英特尔主动电源管理(默认设置)时,它实际上会达到 1 GB/s。
为什么在 BIOS 中禁用主动电源管理会将其移动到 1700 MB/s-2000 MB/s?我的电源装置损坏了吗?(台式机因之前使用而有些磨损。)
BIOS 中的此设置:
高级配置
表 33. 高级配置
选项 描述
ASPM 允许您设置 ASPM 级别。
- 自动(默认)- 设备和 PCI Express 集线器之间存在握手,以确定设备支持的最佳 ASPM 模式
- 已禁用- ASPM 电源管理始终处于关闭状态
- 仅限 L1- ASPM 电源管理设置为使用 L1
答案1
ASPM 是一种电源管理系统,可关闭 PCIe 链路以节省电量。结果是,虽然您可以节省电量,但可能会损害性能。
来自维基百科主动状态电源管理(美国卫生及公共服务部)
目前,PCI Express 2.0 规范指定了两种低功耗模式:L0s 和 L1 模式。L0s 仅涉及为串行链路的一个方向设置低功耗模式,通常在 PHY 控制器的下游。L1 完全关闭 PCI Express 链路,包括参考时钟信号,直到专用信号(CLKREQ#)被断言,并导致更大的功率降低,但代价是更大的退出延迟。
因此,当系统认为链接处于空闲状态时,它就会关闭数据和时钟。
关闭后需要一些时间来恢复并重新启动链接。
看来固件中的许多实现都把空闲检测设置得太激进了。正如你从这个相关问题中看到的那样Windows 中的省电模式似乎启用相关设置来从 Windows 中打开 ASPM 也会出现类似的问题,即减慢链接速度并导致奇怪的行为,使得驱动器由于唤醒时间有限而看起来高度活跃。
您的机器没有问题,只是 L1 电源状态特别容易使链路和驱动器进入休眠状态。出于个人偏好,您应该将设置保留为禁用状态以获得最佳性能。
如果你的 BIOS 设置是“自动”,那么可能需要检查一下你的电源计划设置,以确保链路状态电源管理不是设置为“最大”。如果将电源管理设置为“中等”,则应该可以节省一点电量,而对性能的影响却小得多。
性能损失的原因很可能是驱动器的速度无法持续地完全满足 PCIe 链路的要求。
PCIe 3.0 x4 链路的理论带宽约为 3.5-4GB/s,而您的驱动器管理的带宽约为该带宽的一半。
结果是,链路将以突发方式运行,其中驱动器整理一些数据,通过链路快速发送,然后空闲一段时间,然后再发送另一个突发。
这些突发可能快速而频繁,但 50% 的空闲链路可能会欺骗固件,使其认为系统长时间(就快速时钟速度而言很长)不使用它,因此在突发之间驱动器会进入睡眠状态。当需要更多数据时,L1 睡眠状态意味着链路需要更长时间才能恢复并可用,而浪费的时间实际上会降低性能。