精确报告Linux内存使用情况实用脚本:ps_mem
- 发表于
- Linux
ps_mem内存工具
ps_mem 是一个可以帮助我们精确获取 Linux 中各个程序核心内存使用情况的简单 python 脚本。虽然在 Linux 上有很多可用于查看内存使用情况的工具,比如 free
、vmstat
、smem
、top
等,但这个工具和其它的区别在于其精确显示核心内存使用情况。
它会分别计算一个程序私有内存总量和共享内存总量,并以更准确的方式给出了总的内存使用量。很明显的,它将帮助大家知道系统中哪个程序正在占用更多的内存。
你可以通过包管理器、pip
、或直接运行 ps_mem.py
脚本等多种方式来安装 ps_mem
工具。需要注意的是:需要有 root 权限。
ps_mem安装
pip安装
pip install ps_mem
或者 rpm 和 deb 包对于大多数发行版都是可用的。 还可以直接运行ps_mem.py
脚本。
直接运行 ps_mem.py 脚本
$ git clone https://github.com/pixelb/ps_mem.git && cd ps_mem
$ sudo python ps_mem.py
ps_mem使用方法
ps_mem [-h|--help] [-p PID,...] [-s|--split-args] [-t|--total] [-w N]
[-d|--discriminate-by-pid] [-S|--swap]
输出示例
Private+ Shared=RAM used Program
34.6 MiB + 1.0 MiB =35.7 MiB gnome-terminal
139.8 MiB + 2.3 MiB = 142.1 MiB firefox
291.8 MiB + 2.5 MiB = 294.3 MiB gnome-shell
272.2 MiB +43.9 MiB = 316.1 MiB chrome (12)
913.9 MiB + 3.2 MiB = 917.1 MiB thunderbird
---------------------------------
1.9 GiB
=================================
[-p PID,…]选项允许过滤结果。例如,要将输出限制为当前的$ USER,您可以:
sudo ps_mem -p $(pgrep -d, -u $USER)
或者总结一下每个用户的 RAM 使用总量,你可以:
for i in $(ps -e -o user= | sort | uniq); do
printf '%-20s%10s\n' $i $(sudo ps_mem --total -p $(pgrep -d, -u $i))
done
其它使用示例
输出中打印出全路径:
$ sudo ps_mem -s
Private+ Shared=RAM used Program
3.2 MiB + 951.0 KiB = 4.1 MiB /usr/lib/evolution/evolution-addressbook-factory
3.7 MiB + 826.5 KiB = 4.5 MiB /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
3.7 MiB + 853.0 KiB = 4.6 MiB /usr/lib/unity-settings-daemon/unity-fallback-mount-helper
. . .. . .
131.9 MiB + 168.0 KiB = 132.1 MiB /usr/sbin/mysqld
222.1 MiB + 9.4 MiB = 231.5 MiB /usr/bin/compiz
286.2 MiB +11.8 MiB = 298.1 MiB /usr/lib/firefox/firefox
---------------------------------
1.3 GiB
=================================
只显示特定的 PID 列表的内存使用情况:
$ sudo ps_mem -p 2886,4386
Private+ Shared=RAM used Program
13.5 MiB + 2.9 MiB =16.4 MiB gnome-terminal-server
286.2 MiB +11.8 MiB = 298.0 MiB firefox
---------------------------------
314.4 MiB
=================================
每 N 秒打印进程内存。以下命令每 2 秒报告一次内存使用情况:
$ sudo ps_mem w 2
原文连接:精确报告Linux内存使用情况实用脚本:ps_mem
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。