Linux:测试进程占用的虚拟内存大小

电子说

1.3w人已加入

描述

可以把 /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.

Linux

所以,如果不加 -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 后面跟的参数要用单引号,不可以用双引号。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分