私がそうするならcat /proc/meminfo
私は次のようになります
…
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 662864 kB
DirectMap2M: 7643136 kB
DirectMap1G: 1048576 kB
1G byteページが割り当てられていることがわかります。しかし、ksysguardを見てみると、メモリが125M / 213M(rss)以上のプロセスは見つかりませんでした。
どのプロセスがそれを使用しているのかどうかはどうすればわかりますか?
追加情報
#> cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
ベストアンサー1
このDirectMap
項目はメモリを反映しません。使用、これは物理メモリのページマップまたはページエントリを反映します。DirectMap1G
PUDレベルのページテーブルマッピングを使用して、マッピングされたメモリ量を計算します。
起動中にマッピングが確立されます。arch/x86/mm/init_64.c
そしてphys_pud_init
とを探してくださいphys_p4d_init
。/proc/meminfo
個々の項目に表示される値の合計は、DirectMap
システムの実際のRAMの合計量に似ている必要があり、共有が変更されても合計は決して変更されません(たとえば、PUDレベルマップは次のように分割できます)。 PMDレベルマップはに表示されている値を減らし、DirectMap1G
)に表示される値を増やしますDirectMap2M
。