
「メモリ占有」とは、常にコミットが保証されるメモリを意味すると理解される。つまり、VMAのすべてのページがRAMまたはスワップにあるため、すべてのページを割り当てる必要があります。
ただし、フラグがcat /proc/self/smaps
ある場合(出力から無関係のフィールドを省略しました):[heap]
ac
<addr> rw-p 00000000 00:00 0 [heap]
Size: 132 kB
Rss: 8 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 8 kB
Referenced: 8 kB
Anonymous: 8 kB
Swap: 0 kB
THPeligible: 0
VmFlags: rd wr mr mw me ac sd
ただし、VMAのサイズは132kBですが、8kbしか存在しないため、124kBはコミットされていません。
ac
この場合、どういう意味ですか? 「地域が責任を負う」という意味man proc
だが、ac
正確に何を意味するのかは分からない。
答え1
私は「ac」マッピングされたVMAがOOMキラーの重みに含まれていると思います。たとえば、glibc スタックガードは ac として表示されないため、含まれません。