ps_mem 是一个可以帮助我们精确获取 Linux 中各个程序核心内存使用情况的简单 python 脚本。这个工具和其它的区别在于其精确显示核心内存使用情况。
-- 2daygeek

本文导航
ps_mem[1] 是一个可以帮助我们精确获取 Linux 中各个程序核心内存使用情况的简单 python 脚本。虽然在 Linux 上有很多可用于查看内存使用情况的工具,比如 freevmstatsmemtop 等,但这个工具和其它的区别在于其精确显示核心内存使用情况。
它会分别计算一个程序私有内存总量和共享内存总量,并以更准确的方式给出了总的内存使用量。很明显的,它将帮助大家知道系统中哪个程序正在占用更多的内存。
你可以通过包管理器、pip 、或直接运行 ps_mem.py 脚本等多种方式来安装 ps_mem 工具。需要注意的是:需要有 root 权限。
另外,推荐阅读以下内存工具:
  • free – 一个在 Linux 上查看内存用量统计(可用和已用)的标准工具[2]
  • smem – Linux 内存报告/统计工具[3]
  • vmstat – 一个好用的用于虚拟内存统计的标准工具[4]
通过包管理器安装 ps_mem
基于 RHEL 的系统默认仓库就包含 ps_mem 工具,所以我们可以简单地通过包管理器进行安装。
对于 RHEL/CentOS ,使用 yum 包管理器[5] 安装 ps_mem 包:
  1. $ sudoyum install ps_mem
对于Fedora ,使用 dnf 包管理器[6] 安装 ps_mem 包:
  1. $ sudo dnf install ps_mem
对于 Arch Linux ,使用 pacman 包管理器[7] 安装 ps_mem 包:
  1. $ sudo pacman -S ps_mem
通过 pip 安装 ps_mem
pip 是在 Linux 上推荐使用的一种安装 Python 包的工具。可以使用 pip 命令而不是包管理器去获取最新的版本。使用 pip 包前,请确保你的系统上已安装过 pip 包。否则,先使用发行版本的包管理器安装 python-pip 包。
对于基于 Debian 的系统:
  1. $ sudoapt-get install python-pip
对于基于 RHEL/CentOS 的系统:
  1. $ sudoyum install python-pip
对于 Fedora
  1. $ sudo dnf install python-pip
对于 openSUSE
  1. $ sudo zypper install python-pip
对于基于 Arch Linux 的系统:
  1. $ sudo pacman -S python-pip
最后,在 Linux 上运行 pip 工具安装 ps_mem :
  1. $ sudo pip install ps_mem
直接运行 ps_mem.py 脚本
我们也可以从开发者 github 页面下载文件,并直接运行 ps_mem.py 脚本。
  1. $ gitclone https://github.com/pixelb/ps_mem.git && cd ps_mem
  2. $ sudo python ps_mem.py
ps_mem 使用方法
不带任何参数直接运行 ps_mem 以精确获取每个程序的的核心内存使用情况。
  1. $ sudo ps_mem
  2. Private+Shared=  RAM used   Program
  3. 1.6MiB+438.5KiB=2.1MiB   packagekitd
  4. 1.7MiB+498.0KiB=2.1MiB   indicator-application-service
  5. 912.0KiB+1.3MiB=2.2MiB   window-stack-bridge
  6. 2.0MiB+350.5KiB=2.3MiB   gnome-keyring-daemon
  7. 1.8MiB+575.0KiB=2.3MiB   whoopsie
  8. 2.4MiB+304.5KiB=2.7MiBsystemd-journald
  9. 2.7MiB+157.5KiB=2.8MiB   ibus-engine-simple
  10. 2.7MiB+182.0KiB=2.9MiB   ibus-dconf
  11. 2.7MiB+332.5KiB=3.0MiBNetworkManager
  12. 3.1MiB+169.5KiB=3.2MiB   polkitd
  13. 1.9MiB+1.7MiB=3.6MiBsystemd(2)
  14. 3.4MiB+172.5KiB=3.6MiB   deja-dup-monitor
  15. 2.9MiB+685.0KiB=3.6MiB   zeitgeist-datahub
  16. 2.9MiB+848.0KiB=3.7MiB   python2.7
  17. ......
  18. 222.1MiB+9.4MiB=231.5MiB   compiz
  19. 286.2MiB+11.8MiB=298.0MiB   firefox
  20. ---------------------------------
  21. 1.3GiB
  22. =================================
输出中打印出全路径:
  1. $ sudo ps_mem -s
  2. Private+Shared=  RAM used   Program
  3. 3.2MiB+951.0KiB=4.1MiB/usr/lib/evolution/evolution-addressbook-factory
  4. 3.7MiB+826.5KiB=4.5MiB/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
  5. 3.7MiB+853.0KiB=4.6MiB/usr/lib/unity-settings-daemon/unity-fallback-mount-helper
  6. ......
  7. 131.9MiB+168.0KiB=132.1MiB/usr/sbin/mysqld
  8. 222.1MiB+9.4MiB=231.5MiB/usr/bin/compiz
  9. 286.2MiB+11.8MiB=298.1MiB/usr/lib/firefox/firefox
  10. ---------------------------------
  11. 1.3GiB
  12. =================================
只显示特定的 PID 列表的内存使用情况:
  1. $ sudo ps_mem -p 2886,4386
  2. Private+Shared=  RAM used   Program
  3. 13.5MiB+2.9MiB=16.4MiB   gnome-terminal-server
  4. 286.2MiB+11.8MiB=298.0MiB   firefox
  5. ---------------------------------
  6. 314.4MiB
  7. =================================
每 N 秒打印进程内存。以下命令每 2 秒报告一次内存使用情况:
  1. $ sudo ps_mem w2
只显示内存总量:
  1. $ sudo ps_mem -t
  2. 1329884160

via: http://www.2daygeek.com/ps_mem-report-core-memory-usage-accurately-in-linux/
作者:2DAYGEEK[8] 译者:xllc 校对:wxy
本文由 LCTT 原创编译,Linux中国 荣誉推出
LCTT 译者
xllc
共计翻译:2 篇
贡献时间:2017-06-10 -> 2017-06-25
推荐文章
< 左右滑动查看相关文章 >
点击图片、输入文章 ID 或识别二维码直达
继续阅读
阅读原文