如何查看和分析显卡设备的连接状态
1. 查看显卡设备信息
使用以下命令列出 NVIDIA 显卡设备:
lspci | grep -i nvidia查询结果示例:
01:00.0 VGA compatible controller: NVIDIA Corporation GA102 [GeForce RTX 3090] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GA102 High Definition Audio Controller (rev a1)此处的显卡设备号为 01:00.0。
2. 查询设备的设备号
执行以下命令查询具体设备号:
lspci -n | grep 01:00.0结果如下,设备号为 10de:2204:
01:00.0 0300: 10de:2204 (rev a1)3. 查看设备的连接速度与位宽
使用设备号 10de:1aef 查看显卡的连接速度和位宽:
sudo lspci -n -d 10de:1aef -vvv | grep -i width输出结果可能如下:
LnkCap: Port #0, Speed 16GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <512ns, L1 <4us
LnkSta: Speed 2.5GT/s (downgraded), Width x16 (ok)4. 结果解释
LnkCap (Link Capabilities) 描述了设备的理论最大性能:
Port #0:表示第 0 号端口。Speed 16GT/s:最大支持 16GT/s(适用于 PCIe 4.0)。Width x16:最大支持 x16 位宽。ASPM L0s L1:支持 L0s 和 L1 的电源管理状态。Exit Latency:从 L0s 状态退出的延迟 <512ns,从 L1 状态退出的延迟 <4us。
LnkSta (Link Status) 描述了当前的实际连接状态:
Speed 2.5GT/s (downgraded):当前速度为 2.5GT/s(低于最大 16GT/s),可能是因为硬件限制或设置原因。Width x16 (ok):链路宽度正常,为 x16。
通常情况下,LnkSta 是动态的。当设备通信时,速度会自动提升至 16GT/s:
LnkCap: Port #0, Speed 16GT/s, Width x16, ASPM L0s L1, Exit Latency L0s <1us, L1 <4us
LnkSta: Speed 16GT/s (ok), Width x16 (ok)5. 速度单位说明
这里的速度单位不是以字节为单位,而是以 GT/s(每秒千兆传输)表示,详细信息可以参考 PCI Express 维基百科。

常见问题
Q:主板支持 PCIe 5.0,但为什么插入 3090 显卡后速度只达到 PCIe 4.0?
A: GeForce RTX 3090 仅支持 PCIe 4.0,尽管主板支持 PCIe 5.0,设备的实际运行速度受显卡硬件的限制,导致速度保持在 PCIe 4.0 标准。而 GeForce RTX 4090 才支持 PCIe 5.0。