psm makes it easy to see who is resident in memory, and who is
significantly swapped out.
psm is based off the ideas and implementation of
ps_mem.py.
It requires root privileges to run. It is implemented in go, and
since the executable is a binary it can be made setuid root so that
unprivileged users can get a quick overview of the current memory
situation.
If you're familiar with go and have the go toolchain installed, installation is as easy as:
go get github.com/bpowers/psm
sudo `which psm`
The sudo `which psm` can get a bit tiring. If you're on
Ubuntu, there is a PPA which install psm as setuid root:
sudo apt-get install python-software-properties # for apt-add-repository
sudo add-apt-repository ppa:bobbypowers/psm
sudo apt-get update
sudo apt-get install psm
bpowers@python-worker-01:~$ psm -filter=celery
MB RAM SHARED SWAPPED PROCESS (COUNT)
60.6 1.1 134.2 [celeryd@notifications:MainProcess] (1)
62.6 1.1 [celeryd@health:MainProcess] (1)
113.7 1.2 [celeryd@uploads:MainProcess] (1)
155.1 1.1 [celeryd@triggers:MainProcess] (1)
176.7 1.2 [celeryd@updates:MainProcess] (1)
502.9 1.2 [celeryd@lookbacks:MainProcess] (1)
623.8 1.2 28.5 [celeryd@stats:MainProcess] (1)
671.3 1.2 [celeryd@default:MainProcess] (1)
# 2366.7 164.7 TOTAL USED BY PROCESSES
The MB RAM column is the sum of the Pss value of each mapping in
/proc/$PID/smaps for each process.
psm is offered under the MIT license, see LICENSE for details.