如何枚举内核和驱动程序使用和保留的内存

如何枚举内核和驱动程序使用和保留的内存

我正在运行两个虚拟机(Ubuntu 18.04),两者都有 0.5 GiB 内存。一个在 AWS 上,一个在 Azure 上。我发现尽管两个系统都有 512 MiB 内存,但 AWS 系统有 479 MiB 可用内存:

~$ free --mebi
              total        used        free      shared  buff/cache   available
Mem:            479         131          17           1         330         334
Swap:             0           0           0

而Azure系统只有392 MiB:

~$ free --mebi
              total        used        free      shared  buff/cache   available
Mem:            392         289          28           2          74          89
Swap:             0           0           0

我发现这两个系统之间最大的区别是 Azure 系统在启动时保留了更多的内存:

亚马逊AWS:

~$ dmesg | grep "Memory"
[    0.000000] Memory: 467376K/523892K available (12300K kernel code, 2394K rwdata, 3924K rodata, 2376K init, 2376K bss, 56516K reserved, 0K cma-reserved)

天蓝色:

~$ dmesg | grep "Memory"
[    0.000000] Memory: 376860K/523832K available (14348K kernel code, 2578K rwdata, 4252K rodata, 2320K init, 2296K bss, 146972K reserved, 0K cma-reserved)

有没有办法可以枚举每个驱动程序、内核模块和内核本身使用和保留的内存?或者更广泛地说,有人知道为什么 Azure VM 使用更多内存吗?

相关内容