lshw 和 /proc/meminfo 显示不同的值

lshw 和 /proc/meminfo 显示不同的值

我有一台朋友送的旧服务器(所以我不太熟悉它的规格),并且对系统统计信息显示的各种方式感到困惑。该机器运行的是 Ubuntu 22.04:

ubuntu@ubuntu-desktop:~$ uname -a
Linux ubuntu-desktop 6.5.0-15-generic #15~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Jan 12 18:54:30 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

安装了两个 4GB RAM 模块,但根据我查看的位置,我看到总共只有 4GB:

ubuntu@ubuntu-desktop:~$ cat /proc/meminfo | grep MemTotal
MemTotal:        3921416 kB

ubuntu@ubuntu-desktop:~$ sudo dmesg | grep Memory
[    0.000000] kernel: Memory: 3747444K/4122476K available (20480K kernel code, 4265K rwdata, 13180K rodata, 4792K init, 17396K bss, 374772K reserved, 0K cma-reserved)
[    0.182659] kernel: x86/mm: Memory block size: 128MB

这与顶部和资源管理窗口

但是系统(某种程度上?)知道安装了 8 GB RAM:

sudo lshw -short | grep memory
/0/0                                  memory         64KiB BIOS
/0/c                                  memory         8GiB Systemspeicher
/0/c/0                                memory         4GiB DIMM DDR4 Synchron Unbuffered (Unregistered) 2667 MHz (0,4 ns)
/0/c/1                                memory         4GiB DIMM DDR4 Synchron Unbuffered (Unregistered) 2667 MHz (0,4 ns)
/0/e                                  memory         768KiB L1 Cache
/0/f                                  memory         4MiB L2 Cache
/0/10                                 memory         16MiB L3 Cache

这恰好是Ubuntu 系统窗口

根据 dmesg 输出以及我在其他地方看到的信息,只有 4GB 可用。考虑到交换的大小,安装时很可能也是这种情况(意味着作为一次性操作系统,我当时并不关心细节,并且期望 8GB RAM 加上相应的交换...)

这是正确的吗?如果正确,那么这种差异从何而来?

有什么方法可以解决这个问题,让所有 8 GB 都可用吗?

相关内容