linux查内存命令ps_mem

文章介绍了ps_mem,一个用于Linux的Python脚本,精确显示程序的私有和共享内存使用情况,与传统工具如free、top不同,特别适合追踪内存占用大的程序。脚本可通过pip安装,提供多种使用选项,如筛选特定PID或定时报告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载精确报告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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值