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