커널과 드라이버가 사용하고 예약한 메모리를 열거하는 방법

커널과 드라이버가 사용하고 예약한 메모리를 열거하는 방법

저는 메모리가 0.5GiB인 두 개의 가상 머신(Ubuntu 18.04)을 실행하고 있습니다. 하나는 AWS에 있고 다른 하나는 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

두 시스템 사이에서 발견한 가장 큰 차이점은 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이 더 많은 메모리를 사용하는 이유를 아는 사람이 있나요?

관련 정보