问候!一台配备 512GB RAM(16 个插槽 * 32GB)的服务器,操作系统为 Ubuntu 22.04。在启动过程中,dmesg 中显示服务器保留了 16259356K(15GB) RAM,导致操作系统仅可用 498GB。我无法确定 15GB 分配在哪里。请你帮助我好吗。
1.) Dmidecode for RAM.
root@apac2-prd241:~# dmidecode -t memory |grep Size
Size: 32 GB
Size: 32 GB
Size: 32 GB
Size: 32 GB
Size: 32 GB
Size: 32 GB
Size: 32 GB
Size: 32 GB
Size: 32 GB
Size: 32 GB
Size: 32 GB
Size: 32 GB
Size: 32 GB
Size: 32 GB
Size: 32 GB
Size: 32 GB
2.) dmesg log.
root@apac2-prd241:~# grep Memory /var/log/dmesg
[ 3.919928] kernel: Memory: 520513460K/536773076K available (16393K kernel code, 4395K rwdata, 10908K rodata, 3360K init, 18708K bss, 16259356K reserved, 0K cma-reserved)
[ 8.227673] kernel: x86/mm: Memory block size: 2048MB
3.) System RAM.
root@apac2-prd241:~# free -g
total used free shared buff/cache available
Mem: 497 39 439 17 18 438
Swap: 0 0 0
每个 4K 内存页需要 64B
struct page
开销,这意味着 512 GB RAM 需要 8 GB 的可用内存。由于crashkernel
内存映射设备(即图形适配器)和类似设备添加一些保留内存,您的服务器上大约有 15 GB 不可用。编辑:您分配了 6 GB
crashkernel
(这不会显示为通过操作系统分配的可见内存free
),因此 8+6=14 GB 仅由操作系统为其自己保留。dmesg | grep -i reserved
显示硬件保留范围,您可以将其与输出进行比较cat /proc/iomap
(注意:后者显示所有范围,即使它们并不真正使用任何物理内存)。