[pgsql-jp: 34004] Re: メモリ使用量が少ないにもかかわらず、スワップが発生

Kazuaki Kimura kazubonbonk @ yahoo.co.jp
2004年 9月 18日 (土) 19:49:07 JST


木村@八王子です。
> Linuxのメモリ管理として、buffersとcachedは空いているメ
モリ容量を確保する
>> め、実際のメモリの使用量はused-(buffers+cached)と考え
ています。なので、ス
> ワップ発生時のメモリ使用状況は、
> 
> 
> 
>
メモリ使用量:2043512-(9662+1108020)=925830(kbyte)≒925(Mbyte)
> 
> であり、実メモリ(2G)の半分以下しかメモリを使用してい
ないと思われます。
> 
UNIXの仮想記憶は、アロケートした領域の写像をスワップに作
るのが基本です。(マッピングと呼ばれます)
アロケートした領域にデータを書き込めば、CPUが暇なときに
スワップアウトが発生します。
だから、常時小さい領域を連続してアロケートするプログラム
は遅くて使い物にならんということになります。
一方で、レジデントセットサイズという概念(psコマンドでRSS
と表示される部分がこの値です。)があり、実行形式の何割か
しかコア上に乗っていません。また、アロケートした領域全て
がコア上にあるわけでもありません。
RSSは、カーネルが決める値で、メモリーを積めば増えるとい
うものではありません。
広大な論理アドレス空間上にランダムにデータを書き込むプロ
グラムは、スワップアウトが煩雑に発生します。
投稿された現象は、この現象が起きているのではないかと推測
します。
Windowsは、この原則を無視し、積んでいるだけのメモリを食
いつぶすまでスワップアウトは発生しないようです。Win32版PowerGRES
はこの恩恵を受けてスワップアウトは少ないのではと思います
。
その代わりスワップアウトが発生し始めると、使い物になりま
せんが。
Win32版PowerGRESを評価してみるのも良いかもしれません。
また、シリコンディスクをスワップにしてもそんなに早くない
と昔どこかで読んだことがあります。今はどうなんでしょうか
。


__________________________________
TSUKAME EIKOU! KAGAYAKE EGAO!
Yahoo! JAPAN JPC OFFICIAL INTERNET PORTAL SITE
http://pr.mail.yahoo.co.jp/para/




pgsql-jp メーリングリストの案内