カーネルとドライバが使用して予約したメモリを列挙する方法

カーネルとドライバが使用して予約したメモリを列挙する方法

私はメモリが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がより多くのメモリを使用する理由をもっと広く知っている人はいますか?

ベストアンサー1

おすすめ記事