[英]Find out which process is using shared memory
我不知道系統中當前正在使用共享內存,因此我運行以下命令:
ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x50040150 2195456 user-owner 660 65648 2
0x00000000 2228225 user-owner 660 32768 1
0x00000000 2260994 user-owner 660 1052672 1
0x00000000 2293763 user-owner 660 57304 2
0x00000000 2326532 user-owner 660 98256 1
0x00000000 2359301 user-owner 660 53184 1
0x00000000 2392070 user-owner 660 98416 2
0x00000000 2424839 user-owner 660 98416 2
0x00000000 2457608 user-owner 660 672000 2
0x00000000 2490377 user-owner 660 672000 2
0x00000000 2523146 user-owner 660 672000 2
0x00000000 2555915 user-owner 660 672000 2
0x00000000 2588684 user-owner 660 672000 2
0x00000000 2621453 user-owner 660 672000 2
0x00000000 2654222 user-owner 660 672000 2
0x00000000 2686991 user-owner 660 672000 2
0x43040150 2719760 user-owner 660 304 1
0x00000000 2752529 user-owner 660 32768 1
0x00000000 2785298 user-owner 660 266240 1
0x00000000 2818067 user-owner 660 49104 1
0x00000000 2850836 user-owner 660 167920 2
0x00000000 2883605 user-owner 660 102384 2
0x013352ab 720918 user-owner 666 4096 2
->總共享內存7555480字節= 7555.48 kB
然后運行cat / proc / meminfo | grep -i
cat /proc/meminfo |grep -i shmem<br/>
Shmem: 21592 kB
如我所見,ipcs -m中的總共享內存之間存在差距,我無法理解正在使用哪個進程,您能幫我這個忙嗎?
謝謝
shmem不僅包括ipc共享內存段,例如ramdisk。
/ proc / pid / statm-第三個字段指示一個進程具有多少共享內存頁。 示例代碼:
cd /proc
for i in `ls -d * | grep -v self`
do
if [[ -f $i/statm ]];then
echo -n "$i "; cat $i/statm | perl -lan -e 'print ($F[2] * 4096)';
fi
done | sort -nr -k2 | head
4096是getconf PAGESIZE
頁面大小
有關更多可能性,請參閱https://lists.kernelnewbies.org/pipermail/kernelnewbies/2013-July/008628.html和https://access.redhat.com/solutions/406773 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.