はとのーと

エジソンノート(アイデア、思い付き、メモ)として使っています。誰かの役に立つかもしれないので公開しています。

Linuxのtopやpsで表示されるVSZとRSSのメモリの単位はKB

たとえば、いまRedmineが動いていて、その使用メモリを知りたいときは次のようにする。 (-e 1pは1行目を表示するために指定)

$ ps aux | sed -n -e 1p -e '/redmine/p'
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
systemd+  279491  0.0  0.3 213296 160188 ?       Ssl  13:43   0:11 /usr/local/bin/ruby bin/rails server -b 0.0.0.0

VSZが仮想メモリまで含んだメモリ使用量、RSS実メモリ使用量。 単位はKB。

単位については次のように知ることができる。

上記プロセスのPIDは279491なので、次のようにするとプロセスのメモリ情報が得られる。

$ sudo cat /proc/279491/statm
53324 40047 2488 2 0 50155 0

最初の数値がVSZ、次の数値がRSSに相当する。 単位はページ数。

参照: Man page of PROC

1ページの容量はgetconf PAGE_SIZEで得ることができる。

$ getconf PAGE_SIZE
4096

ここでは4096なので、先のstatmの結果は次のようになり、psの結果と一致する。

  • VSS: 53324×4096=218415104。218415104÷1024=213296KB。
  • RSS: 40047×4096=164032512。164032512÷1024=160188KB。