我正在分析 Linux 系统上的内存使用情况。当我运行 vmstat -s 时,我看到以下内容:
waffleman@waffle-iron:~$ vmstat -s
3549184 K total memory
3206708 K used memory
1918012 K active memory
1037320 K inactive memory
342476 K free memory
301448 K buffer memory
1748772 K swap cache
0 K total swap
0 K used swap
0 K free swap
5481272 non-nice user cpu ticks
763306 nice user cpu ticks
3570165 system cpu ticks
996097114 idle cpu ticks
72862 IO-wait cpu ticks
27 IRQ cpu ticks
35837 softirq cpu ticks
0 stolen cpu ticks
1718539 pages paged in
69439772 pages paged out
0 pages swapped in
0 pages swapped out
460599379 interrupts
1697890087 CPU context switches
1314014908 boot time
307904 forks
我知道系统安装了 4096 MB 的 RAM,但为什么只显示 3466 MB?这可以解释为总“可用”内存吗?也许缺少的 630 MB 正在被内核使用,无法分页?
我也在嵌入式 Linux 系统上尝试过这个,结果也差不多。DRAM 芯片有 128 MB,但 vmstat 中只显示 124 MB。
答案1
“总内存”是内核管理的总内存。
其他东西正在使用该内存或阻止内核使用该内存。可能有很多原因。例如,如果这是一个没有 PAE 的 32 位操作系统,其他映射可能会占用地址空间,从而剩下不到 4GB 的空间。BIOS 使用一些内存来填充要传递给操作系统的结构。共享内存视频卡可能会消耗一些内存。等等。