Linux: プログラムごとのメモリ使用量を調べる

2007年の投稿ですが、あるサイトにHow much RAM is used per programという記事があって、プロセス単位ではなくプログラム単位でメモリ使用量を調べてくれるスクリプトが紹介されていました。

使い方:このページにあるPythonのコードをps_mem.py というファイルとして保存しましょう。そして、sudo python ps_mem.py というコマンドを実行します。

もちろん、Pythonインタープリタがインストールされていることが前提です。

出力結果はこんな感じ:


Private + Shared = RAM used Program

136.0 KiB + 284.0 KiB = 420.0 KiB atd
164.0 KiB + 364.0 KiB = 528.0 KiB mysqld_safe
128.0 KiB + 416.0 KiB = 544.0 KiB dd
104.0 KiB + 448.0 KiB = 552.0 KiB cronolog
84.0 KiB + 520.0 KiB = 604.0 KiB logger
180.0 KiB + 536.0 KiB = 716.0 KiB syslogd
316.0 KiB + 408.0 KiB = 724.0 KiB udevd
144.0 KiB + 672.0 KiB = 816.0 KiB acpid
424.0 KiB + 444.0 KiB = 868.0 KiB getty (6)
228.0 KiB + 668.0 KiB = 896.0 KiB cron
500.0 KiB + 736.0 KiB = 1.2 MiB ntpd
612.0 KiB + 736.0 KiB = 1.3 MiB monit
596.0 KiB + 1.0 MiB = 1.6 MiB PassengerWatchd
1.2 MiB + 460.0 KiB = 1.7 MiB init
344.0 KiB + 1.3 MiB = 1.7 MiB pickup
368.0 KiB + 1.4 MiB = 1.7 MiB master
428.0 KiB + 1.4 MiB = 1.8 MiB qmgr
1.5 MiB + 400.0 KiB = 1.9 MiB klogd
528.0 KiB + 1.4 MiB = 1.9 MiB tlsmgr
1.0 MiB + 1.7 MiB = 2.8 MiB sshd (4)
1.0 MiB + 1.9 MiB = 2.9 MiB PassengerLoggin
1.8 MiB + 1.5 MiB = 3.3 MiB zsh (2)
1.4 MiB + 2.0 MiB = 3.5 MiB saslauthd (5)
3.2 MiB + 1.1 MiB = 4.3 MiB PassengerHelper
13.5 MiB + 628.0 KiB = 14.1 MiB memcached
26.8 MiB + 3.1 MiB = 30.0 MiB postgres (5)
49.1 MiB + 1.1 MiB = 50.3 MiB mysqld
105.0 MiB + 8.0 MiB = 113.0 MiB httpd (11)
377.0 MiB + 28.0 MiB = 405.0 MiB ruby (12)

Private + Shared = RAM used Program

rubyで動いているプロセスは12個あって、全部で405.0MiB使用していることが分かります。

コンパクトで見やすいですね。