为了防止OOM杀手运行,我设置了vm.overcommit_memory = 2和vm.overcommit_ratio = 100.我想知道给定进程提交了多少内存,这有助于提交计数.
它不是常驻工作集,因为常驻工作集不包括交换的金额.它也不是虚拟大小,因为虚拟大小包括mmap()ed文件,这些文件不会影响提交限制.
解决方法
为进程的ID运行pmap -x PID以显示内存分配.
[root@ObamaBiden ~]# pmap -x 8106 8106: /opt/dbcfs/dbcfsrun 10.51.64.76 4483 /opt/dbcfs/dbcfs.cfg 9584:1 -ssl Address Kbytes RSS Dirty Mode Mapping 0000000000266000 120 96 0 r-x-- ld-2.12.so 0000000000284000 4 4 4 r-x-- ld-2.12.so 0000000000285000 4 4 4 rwx-- ld-2.12.so 0000000000288000 1584 388 0 r-x-- libc-2.12.so 0000000000414000 8 8 8 r-x-- libc-2.12.so 0000000000416000 4 4 4 rwx-- libc-2.12.so 0000000000417000 12 8 8 rwx-- [ anon ] 0000000008048000 912 624 0 r-x-- dbcfsrun 000000000812c000 56 44 36 rwx-- dbcfsrun 000000000813a000 152 60 60 rwx-- [ anon ] 0000000008a51000 280 132 132 rwx-- [ anon ] 00000000f678c000 16008 5396 5396 rwx-- [ anon ] 00000000f7739000 4 4 4 rwx-- [ anon ] 00000000f773a000 4 4 0 r-x-- [ anon ] 00000000ffd8a000 84 32 32 rwx-- [ stack ] ---------------- ------ ------ ------ total kB 19236 6808 5688