如何在 Linux 中获取内存通道(单通道、双通道等)类型?

大宝剑*_*大宝剑 9 linux memory

我想知道在 Linux 中我的内存通道是什么类型的,单通道还是双通道等等。

  1. 我尝试通过检查 /proc 文件系统找到它,但没有成功。进而
  2. dmidecode用来获取系统信息,并查看,也没有找到。

我怎么才能得到它?

Dav*_*rtz 11

dmidecode输出中搜索Interleaved Data Depth。双通道内存的交错深度为 2。

  • 如果那里根本没有“Interleaved Data Depth”行怎么办? (9认同)
  • 如果我有“交错数据深度:未知”怎么办? (4认同)
  • 这个答案是不正确的。交错数据深度并不指示通道数量,即使它确实报告了一个数字。您可能在双通道中运行,但仍显示交错数据深度为 1。 (2认同)

xen*_*ndi 5

人们给出“交错数据深度”作为答案是不正确的。交错数据深度要么不是正确的指标,要么经常被错误报告(如果有报告的话)。

获取您正在使用的频道数量的一个简单方法是执行如下操作:

sudo dmidecode -t 17 | awk 'BEGIN { FS=":"; OFS="\t" } /Size|Channel/ { line = (line ? line OFS : "") $2 } /^$/ { print line; line="RAM" }' | grep -iv 'no'
Run Code Online (Sandbox Code Playgroud)

样本输出(双通道):

RAM  32 GB   ChannelA-DIMM0
RAM  32 GB   ChannelB-DIMM0
Run Code Online (Sandbox Code Playgroud)

在同一台机器上,让我们检查交错数据深度:

RAM  32 GB   ChannelA-DIMM0
RAM  32 GB   ChannelB-DIMM0
Run Code Online (Sandbox Code Playgroud)

输出:

Interleaved Data Depth: 1
Interleaved Data Depth: 1
Run Code Online (Sandbox Code Playgroud)

在同一台机器上还通过 CPU-Z 在 Windows 中进行了验证。内存不足被逐字报告:双通道

因此交错数据深度不正确,但我们可以轻松检查我们的通道(A、B、C、D 等)。