2006-07-28

Linux でプロセスごとのメモリー使用量を調べる

徒然な覚書さんの所で、Window Manager のメモリー使用量の言及

メモリ使用量を比べると Fluxbox=6~7MB に対して、WindowLab=300~600KB なので、リソースが乏しいザウルスには最適。

徒然な覚書 : WindowLab より 2006 年 7 月 29 日に引用

があったので、自分の使ってる sawfish についても調べてみようとして、ハタと困った。プロセスごとのメモリー使用量の調べ方が分かんない。

というわけで、メモリー使用量を調べる方法をメモ。

ps alx

調べ方は、分かってしまえば簡単。次のコマンドを実行する。

$ ps alx

すると、ズラーと次のような結果が表示される。

F   UID   PID  PPID PRI  NI   VSZ  RSS WCHAN  STAT TTY        TIME COMMAND
4     0     1     0  16   0  1896  464 -      S    ?          0:06 init [5]     
1     0     2     1  34  19     0    0 -      SWN  ?          0:11 [ksoftirqd/0]
1     0     3     1   5 -10     0    0 -      SW<  ?          0:07 [events/0]
1     0     4     3   5 -10     0    0 -      SW<  ?          0:00 [kblockd/0]
1     0     6     3   6 -10     0    0 -      SW<  ?          0:00 [khelper]
1     0     5     1  15   0     0    0 -      SW   ?          0:00 [khubd]
1     0     7     3  15   0     0    0 -      SW   ?          0:27 [pdflush]
1     0     8     3  15   0     0    0 -      SW   ?          0:09 [pdflush]
1     0    10     3  13 -10     0    0 -      SW<  ?          0:00 [aio/0]
... (続く)

ここで、RSS と表示されているのが、メモリーの使用量 (単位は kB)。

この中から、目当てのコマンド (プロセス) を grep で抜き出してやればいい。ヘッダー部分を残すなら、こんな感じ。

$ ps alx | head -1 && ps alx | grep sawfish
F   UID   PID  PPID PRI  NI   VSZ  RSS WCHAN  STAT TTY        TIME COMMAND
0   666  3173  3147  15   0 11596 4976 -      S    ?          1:16 sawfish
0   666  4185  1733  23   5  5708  716 -      RN   pts/507    0:00 grep sawfish

もしくは、RSS 部分だけを抜き出すなら、

$ ps alx | grep sawfish | awk '{printf ("%d\t%s\n", $8,$13)}'
4976    sawfish
716     grep

という感じかな。

で、結果だけど、sawfish のメモリー使用量は約 5 MB。WindowLab 程低くはないけど、Fluxbox よりは少しましかな。

RSS

最後に、RSS とは何か?

どうやら、Resident Set Size の略らしい。常駐セット (Resident set) は、「物理メモリーに常駐するページ」のことを指すそうで、つまり素人考えをすればメモリーの使用量とみなしてよいのかな。

最近は、RSS フィードがメジャーになったもんだから、(メモリーの) RSS の説明を探すのも大変!

3 comments:

  1. ps + grep で目的のプロセスだけの情報を抜き取るとき
    grep sawfish
    ではなく
    grep [s]awfish
    とすると grep の情報が出ないので便利ですよ。

    ReplyDelete
  2. おおっ。そんな Tips があったとは!
    ありがたく使わせて頂きます m(_ _)m。

    # 記事も、後程、修正します。

    ReplyDelete
  3. > # 記事も、後程、修正します。

    記事は修正せず、新しく記事を書き起こしました。
    - clmemo@aka: ps + grep の Tips

    ReplyDelete