电子说
可以把 /proc/PID/maps文件里的各项累加起来,取和即是。
$ (echo ‘a=0’; sed -r ‘s;^([^-]*)-([^- ]*).*;a=$((a+0x\2-0x\1));’ /proc/2451/maps;printf ‘echo Calculated mmap size : $((a》》10)) KB’ ) | sh -
Calculated mmap size : 92484 KB
另一种方法是读取 /proc/PID/status文件里的VmSize项:
$ echo “size of VM for status: ” $(cat /proc/2451/status | grep “VmSize” | sed -r ‘s;^VmSize:[ \t]*([0-9]*).*;\1;’) “KB”
size of VM for status: 92980 KB
稍微解释下。
1. sed 命令的 -r选项表示 使用 extended regular regressions.
所以,如果不加 -r参数,上面的命令要改成:
$ echo “size of VM for status: ” $(cat /proc/2451/status | grep “VmSize” | sed ‘s;^VmSize:[ \t]*\([0-9]*\).*;\1;’) “KB”
size of VM for status: 92980 KB
2.第一个命令里的sed 后面跟的参数要用单引号,不可以用双引号。
全部0条评论
快来发表一下你的评论吧 !