我正在使用一台旧台式机(非常旧的联想 ThinkCentre 工作站),我们已将其重新用作服务器(RHEL7.3)。它有一个集成的图形芯片,我认为它消耗的 RAM 比它应有的要多。系统报告安装了 4GB,free -m 列出 3.5~ GB 可用。查看 dmesg,我可以看到操作系统保留了剩余的 0.5~ GB。我尝试通过将 BIOS 中保留的视频 RAM 设置为固定的 128MB 来减少它。但是,重新启动后,系统保留了相同数量的内存:
[redacted]$ grep memory -i dmesg | grep -i reserved
[ 0.000000] Memory: 3648080k/5046272k available (6764k kernel code, 1058768k absent, 339424k reserved, 4433k data, 1680k init)
[redacted]$ grep memory -i dmesg.old | grep -i reserved
[ 0.000000] Memory: 3648080k/5046272k available (6764k kernel code, 1058768k absent, 339424k reserved, 4433k data, 1680k init)
我是不是漏掉了什么步骤,还是这个步骤是正确的?我仔细检查了 BIOS,确保我保存了更改,但它显示的是显卡的预期设置。我有什么办法可以获取系统保留的部分 RAM,还是说这些 RAM 已经“丢失”了,我们需要解决这些问题?
答案1
内核不是在保留 RAM,而是在保留地址空间。您的工作站可能不支持内存重映射,因此如果它需要低于 4GB 的地址空间(而且它会需要,用于各种用途),那么部分 RAM 就无法使用。RAM 并未保留,只是没有地方将其映射以便访问。
您可以检查 BIOS 设置中的“内存重新映射”设置。如果看到,请将其打开。这将导致 BIOS 重新映射超过 4GB 限制的内存。如果 BIOS 没有此选项,则芯片组可能不支持此类重新映射。