linux 内存统计工具 smem
smem 是 Linux 平台上一个非常好用的内存使用统计工具,能够统计出进程的 uss,pss,rss 内存占用情况,尤其对于 uss,它是去除共享库之后的内存占用情况,能够反映一个进程真实的内存占用。此外,smem 也能够按用户进行统计,输出一个用户下所有进程占用的内存之和。以及按模块显示内存占用的映射关系,比如某个共享库占用多大内存,被多少个进程使用等。
smem 可以使用 yum install smem 进行安装。如果没有可用的 yum 源,可以直接拷贝一份已有的 smem 程序,路径为 /bin/smem,实际上 smem 是一个 Python2 的脚本,拷贝过来可以直接执行。
smem 可以直接在非 root 用户下执行,如下:
[ant01@centos ~]$ smem PID User Command Swap USS PSS RSS 1975 ant01 -bash 0 500 935 2152 1996 ant01 python /usr/bin/smem 0 4320 4796 6540
按用户进行内存使用统计:
[ant01@centos ~]$ smem -u User Count Swap USS PSS RSS ant01 2 0 4824 5735 8696
smem -m 可以按模块查看共享库占用的内存大小以及被多少进程使用,如下:
[ant01@centos ~]$ smem -m Map PIDs AVGPSS PSS [vdso] 2 0 0 [vsyscall] 2 0 0 /usr/lib64/gconv/gconv-modules.cache 1 5 5 /usr/lib64/libutil-2.17.so 1 8 8 /usr/bin/python2.7 1 9 9 /usr/lib64/libnss_files-2.17.so 1 9 9 /usr/lib64/libpthread-2.17.so 1 10 10 /usr/lib64/python2.7/lib-dynload/_functo 1 10 10 /usr/lib64/python2.7/lib-dynload/grpmodu 1 10 10 /usr/lib64/libm-2.17.so 1 13 13 /usr/lib64/python2.7/lib-dynload/_locale 1 13 13 /usr/lib/locale/locale-archive 2 7 15 /usr/lib64/python2.7/lib-dynload/_heapq. 1 15 15 /usr/lib64/libdl-2.17.so 2 8 16 /usr/lib64/python2.7/lib-dynload/_collec 1 17 17 /usr/lib64/python2.7/lib-dynload/_struct 1 17 17 /usr/lib64/python2.7/lib-dynload/stropmo 1 17 17 /usr/lib64/python2.7/lib-dynload/timemod 1 17 17 /usr/lib64/python2.7/lib-dynload/operato 1 21 21 /usr/lib64/ld-2.17.so 2 12 24 /usr/lib64/python2.7/lib-dynload/itertoo 1 31 31 [stack] 2 28 56 /usr/lib64/libtinfo.so.5.9 1 82 82 /usr/lib64/libc-2.17.so 2 59 119 /usr/bin/bash 1 350 350 /usr/lib64/libpython2.7.so.1.0 1 611 611 [heap] 2 862 1724 <anonymous> 2 1264 2528
smem 还有更多其他功能,这里不一一赘述,详见使用帮助。查看 smem 使用帮助信息:
[ant01@centos ~]$ smem --help Usage: smem [options] Options: -h, --help show this help message and exit -H, --no-header disable header line -c COLUMNS, --columns=COLUMNS columns to show -t, --totals show totals -R REALMEM, --realmem=REALMEM amount of physical RAM -K KERNEL, --kernel=KERNEL path to kernel image -m, --mappings show mappings -u, --users show users -w, --system show whole system -P PROCESSFILTER, --processfilter=PROCESSFILTER process filter regex -M MAPFILTER, --mapfilter=MAPFILTER map filter regex -U USERFILTER, --userfilter=USERFILTER user filter regex -n, --numeric numeric output -s SORT, --sort=SORT field to sort on -r, --reverse reverse sort -p, --percent show percentage -k, --abbreviate show unit suffixes --pie=PIE show pie graph --bar=BAR show bar graph -S SOURCE, --source=SOURCE /proc data source
文章评论
共0条评论