- - PR -
メモリ遷移について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-12-09 16:22
みなさまこんにちわ♪とっちぃ@Linux初心者です。
今回、プロセス"ABC"でメモリリークが発生していることが判明し、 プロセス"ABC"を再起動しました。 プロセス"ABC"を再起動することによって、VSZが505240K→5764Kへ減少しました。 ---再起動前のプロセス遷移(1時間毎) USER PID PPID VSZ RSS STIME START TIME PAGEIN COMMAND XXX 5014 4993 503356 499736 Oct29 Oct 29 01:47:50 857521 ./AAA XXX 5014 4993 504004 500384 Oct29 Oct 29 01:48:00 858641 ./AAA XXX 5014 4993 504664 501044 Oct29 Oct 29 01:48:10 859740 ./AAA XXX 5014 4993 505240 501620 Oct29 Oct 29 01:48:19 860704 ./AAA ※VSZが増加しているのが分かります。 ---再起動後のプロセス遷移 XXX 4137 4116 5764 1912 14:30 14:30 00:00:00 299 ./AAA しかし、freeの値を確認すると、再起動前と再起動後の値では、ほとんど変化 が見られません。 ---再起動前のfree total used free shared buffers cached Mem: 1027872 961868 66004 20856 25952 725140 -/+ buffers/cache: 210776 817096 Swap: 2048276 2368 2045908 ---再起動後のfree total used free shared buffers cached Mem: 1027872 986508 41364 20856 25952 737540 -/+ buffers/cache: 223016 804856 Swap: 2048276 2368 2045908 freeで出される値とpsで出されるVSZの値というのはリンクしていないのでしょうか? OSはLinux REDHAD7.3です 宜しくお願いいたします。 | ||||||||
|
投稿日時: 2003-12-09 17:03
Linuxは、空いている物理メモリを使って可能な限りディスクキャッシュを行います。 そのため、プロセスがメモリを使っていなくても、freeの値がとても小さく見えます。
というわけで、キャッシュに約730MB近く使っています。 プロセスがどんどんメモリを食うにつれてこの値は減ります。 | ||||||||
|
投稿日時: 2003-12-10 10:03
おばけさん。レスありがとうございます。
つまりLinuxは、 @物理メモリをディスクキャッシュする。 Aプロセスがメモリを食うにつれてディスクキャッシュが減少する Bディスクキャッシュが足りなくなるとスワップアウトする。 という流れとなるのでしょうか? ここ1ヶ月のデータをトレースしてみると、 プロセス"ABC"は500Mのメモリリークを起こしています。(VSZ) しかし、キャッシュの減少もみられず、スワップアウトも 3M程度しか発生しておりません。 僕の推理が正しければ、スワップアウトがもっと発生しても 良いのかと思ってしまうのですが、これはご認識なのでしょうか? | ||||||||
|
投稿日時: 2003-12-10 10:25
ディスクキャッシュは、ディスクI/Oに対するキャッシュですのでスワップとは違うと思います。 プロセスの使用するメモリ量が増加したとしても、最終的にディスクキャッシュがゼロになる とは思いません。 例えば全物理メモリが1GBであるとして、ディスクキャッシュの最低量が128MBであるとすると、 プロセスが使用できるメモリ量の限度は大体896MBくらいなわけですが、これを超えて プロセスにメモリをアロケートしようとするとスワップが始まるのだと思います。
つまり、物理メモリ量が1GBと多いため、起動しているプロセスが消費しているメモリと ディスクキャッシュサイズの合計が(メモリリーク量を加味しても)それより小さかったわけですね。 大容量メモリを搭載すると(昨今1GBで大容量と言うかどうかは分かりませんが)、このように 「スワップをほとんど使わない」状態になります。 P.S. 実際は、メモリを使用するのはプロセスとディスクキャッシュだけではないと思います。 [ メッセージ編集済み 編集者: おばけ 編集日時 2003-12-10 10:26 ] | ||||||||
|
投稿日時: 2003-12-10 12:35
スワップされなくても、使われないメモリはページアウトされています。
相当負荷が高く無くてはスワップが定常的に発生する事は無いと思います。 |
1