私はメモリが0.5GiBの2つの仮想マシン(Ubuntu 18.04)を実行しています。 1 つは AWS にあり、もう 1 つは Azure にあります。どちらのシステムにも512MiBのメモリがありますが、AWSシステムには479MiBの利用可能なメモリがあることがわかりました。
~$ free --mebi
total used free shared buff/cache available
Mem: 479 131 17 1 330 334
Swap: 0 0 0
Azure システムは 392MiB にすぎません。
~$ free --mebi
total used free shared buff/cache available
Mem: 392 289 28 2 74 89
Swap: 0 0 0
2 つのシステム間で見られる最大の違いは、Azure システムが起動時により多くのメモリを予約することです。
Amazon 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がより多くのメモリを使用する理由をもっと広く知っている人はいますか?