VSZとRSSとスワップ

“VSZ”

Linux/メモリ確保とVSZとRSS – discypus
VSZ と RSS の話。こいつら、ps コマンドの l オプションとかで出てくるんだけど、昔は見方が分からなかった。ここらへんの値を見ると、プロセスがどれだけメモリを必要としているのかが分かる。
VSZ ってのは仮想メモリと呼ばれるもので、プロセスが起動したら、とりあえず確保される。仮想メモリってのは Linux に限らずあるんだろうけど、HDD とかを利用して物理メモリ以上にシステム上のメモリを拡張しちゃおうって仕組み。物理メモリ以上のメモリを使用できるので、たくさんのプロセスを立ち上げることができるようになる。
この VSZ の中で、実際に物理メモリ上を占拠しているのが RSS。一旦、物理メモリ上に乗っても、プロセスが活動していないと、物理メモリが不足してきた時には優先的に HDD へ追い出されちゃう。実際、Apache 上げたままにしておいて、ほとんどアクセスしてなかったら RSS がすごく小さくなった。
で、物理メモリの内容を HDD に逃がすのをスワップするって言うんだけど、ほとんどの人はこれを嫌います。僕も嫌いです。でも、システムが正常に稼動しているなら、多少のスワップもよさそうです。
仮想メモリのパフォーマンスとは
I/O 待ちが発生しない程度なら、むしろ仮想メモリを有効に使っていることになるのかも。
そういえば USB メモリとかをスワップ領域に利用して、スワップ利用時の I/O 負荷を減らそうって話があったなぁ。普通に処理は速くなると思うけど、スワップ領域を増やしすぎるとメモリ管理に CPU を食われて、アプリケーションのパフォーマンスも多少は落ちるのではなかろうか。気にするほどじゃないかな。検証してみたい。