2009-05-12

Linux でプロセスのメモリー使用量をソート表示する

Linux でプロセスのメモリー使用量を調べる、の巻 第三弾。

第一弾・第二弾では、特定のプロセス (firefox とか) のメモリー使用量を調べる方法を書いた。

今回は、特定のプロセスのメモリー使用量を調べるんじゃなくて、どのプロセスのメモリー使用量が多いかを調べる方法。

やり方は簡単。ps コマンドに --sort オプションを渡してソートしてあげるだけ。sort オプションの引き数には、ソートしたい項目の名前を使定する。

例えば、RSS の大きい順に並べる場合はかうする。

$ ps alx --sort -rss
F   UID   PID  PPID PRI  NI    VSZ   RSS WCHAN  STAT TTY        TIME COMMAND
0  1000 11317  6240  25   5 625832 373216 -     SNLl pts/0     96:08 /usr/lib/firefox-3.0.10/firefox
4     0  5707  5704  20   0 334184 66080 -      SLs+ tty7      27:35 /usr/bin/X :0 -br -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7
0  1000 32045  7854  30  10  61152 41516 -      SN   pts/3     45:37 emacs
(続く)...

--sort の引数に -rss と指定しているね。rss の前にマイナス記号を付けているのがミソ。マイナス記号を付けると、ソート順が降順になる。

sort オプションは複数の引数も受け付ける。

下の例は、「ユーザーごとのメモリー利用量」を調べてる。

ps aux --sort user,-rss
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
avahi     5268  0.0  0.0   5280  2068 ?        Ss   Apr29   0:00 avahi-daemon: running [linux-aka.local]
avahi     5269  0.0  0.0   5148   792 ?        Ss   Apr29   0:00 avahi-daemon: chroot helper
daemon    4609  0.0  0.0   1836   520 ?        Ss   Apr29   0:00 /sbin/portmap
daemon    5779  0.0  0.0   1812   396 ?        Ss   Apr29   0:00 /usr/sbin/atd
dhcp      5042  0.0  0.0   2268  1144 ?        S    May08   0:00 /sbin/dhclient -1 -lf /var/lib/dhcp3/dhclient.eth0.leases -pf /var/run/dhclient.eth0.pid -q -e dhc_dbus=31 -d eth0
107       8405  0.0  0.2   9732  5284 ?        Ss   Apr30   0:11 /usr/sbin/hald
107       8438  0.0  0.0   2032   812 ?        S    Apr30   0:00 hald-addon-acpi: listening on acpid socket /var/run/acpid.socket
klog      5128  0.0  0.1   3712  2624 ?        Ss   Apr29   0:00 /sbin/klogd -P /var/run/klogd/kmsg

まず、ユーザーでソートした後、RSS で降順に表示させているわけ。

あとがき

ps コマンドの sort オプションは、日経 Linux を読んでて知った。

No comments:

Post a Comment