Les commandes top et htop ne permettent pas toujours de voir toute la mémoire utilisée par une application, je dis bien une application et non pas un processus. Il est intéressant de pouvoir voir la mémoire utilisée par une application.
Le script ps_mem permet d'avoir une estimation assez proche de cette utilisation.
Utilisation classique :
# ./ps_mem.py
Private + Shared = RAM used Program
100.0 KiB + 232.0 KiB = 332.0 KiB mdadm
68.0 KiB + 508.0 KiB = 576.0 KiB logger
136.0 KiB + 472.0 KiB = 608.0 KiB smartd
80.0 KiB + 548.0 KiB = 628.0 KiB init
152.0 KiB + 488.0 KiB = 640.0 KiB dbus-daemon
264.0 KiB + 484.0 KiB = 748.0 KiB udevd
448.0 KiB + 404.0 KiB = 852.0 KiB getty (7)
140.0 KiB + 820.0 KiB = 960.0 KiB unlinkd
188.0 KiB + 792.0 KiB = 980.0 KiB cron
544.0 KiB + 580.0 KiB = 1.1 MiB proftpd
460.0 KiB + 720.0 KiB = 1.2 MiB screen
200.0 KiB + 1.0 MiB = 1.2 MiB mysqld_safe
720.0 KiB + 960.0 KiB = 1.6 MiB rsyslogd
312.0 KiB + 1.4 MiB = 1.7 MiB pickup
336.0 KiB + 1.4 MiB = 1.8 MiB master
372.0 KiB + 1.5 MiB = 1.9 MiB qmgr
836.0 KiB + 1.3 MiB = 2.2 MiB bash (2)
1.8 MiB + 388.0 KiB = 2.2 MiB cronolog (33)
824.0 KiB + 2.5 MiB = 3.3 MiB sshd (2)
12.1 MiB + 1.7 MiB = 13.8 MiB named
18.2 MiB + 2.6 MiB = 20.8 MiB squid3 (2)
46.3 MiB + 5.6 MiB = 51.9 MiB mysqld
140.9 MiB + 36.7 MiB = 177.6 MiB apache2 (12)
Private + Shared = RAM used Program
Warning: Shared memory is not reported accurately by this system.
Values reported could be too large, and totals are not reported
Ce qui peut nous intéresser c'est de récupérer seulement les applications qui utilisent plus d'1 MiB et de trier tout ceci dans l'ordre du plus consomateur au moins consomateur :
./ps_mem.py | grep -v Private | awk '{ print $7 " " $8 " " $9}' | grep -v KiB
| sort -nr
Warning: Shared memory is not reported accurately by this system.
Values reported could be too large, and totals are not reported
183.1 MiB apache2
51.9 MiB mysqld
20.8 MiB squid3
13.8 MiB named
3.3 MiB sshd
2.2 MiB cronolog
2.2 MiB bash
1.9 MiB qmgr
1.8 MiB master
1.7 MiB pickup
1.6 MiB rsyslogd
1.2 MiB screen
1.2 MiB mysqld_safe
1.1 MiB proftpd