linux查内存命令ps_mem

转载精确报告Linux内存使用情况实用脚本:ps_mem - 体验盒子 - 不再关注网络安全

ps_mem内存工具

ps_mem 是一个可以帮助我们精确获取 Linux 中各个程序核心内存使用情况的简单 python 脚本。虽然在 Linux 上有很多可用于查看内存使用情况的工具,比如 freevmstatsmemtop 等,但这个工具和其它的区别在于其精确显示核心内存使用情况。

它会分别计算一个程序私有内存总量和共享内存总量,并以更准确的方式给出了总的内存使用量。很明显的,它将帮助大家知道系统中哪个程序正在占用更多的内存。

你可以通过包管理器、pip 、或直接运行 ps_mem.py 脚本等多种方式来安装 ps_mem 工具。需要注意的是:需要有 root 权限。

ps_mem安装

pip安装

yum -y install ps_mem

1

pip install ps_mem

或者 rpm 和 deb 包对于大多数发行版都是可用的。 还可以直接运行ps_mem.py脚本。

直接运行 ps_mem.py 脚本

1

2

$ git clone https://github.com/pixelb/ps_mem.git && cd ps_mem

$ sudo python ps_mem.py

ps_mem使用方法

1

2

ps_mem [-h|--help] [-p PID,...] [-s|--split-args] [-t|--total] [-w N]

       [-d|--discriminate-by-pid] [-S|--swap]

输出示例

1

2

3

4

5

6

7

8

9

10

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,您可以:

1

sudo ps_mem -p $(pgrep -d, -u $USER)

或者总结一下每个用户的 RAM 使用总量,你可以:

1

2

3

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

其它使用示例

输出中打印出全路径:

1

2

3

4

5

6

7

8

9

10

11

12

$ 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 列表的内存使用情况:

1

2

3

4

5

6

7

$ 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 秒报告一次内存使用情况:

1

$ sudo ps_mem w 2

你可能感兴趣的:(linux,运维,服务器)