[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:42746] Re: [Q]2.6.X でのディスクキャッシュについて



やすいです.

逸見研一 wrote:
>>>[現象]
>>>  ファイルをコピーすると、そのファイルの大きさの倍のメモリが消費され。
>>>  作業が終了しても開放されない。
>>>  top などで見ると、この領域はアプリが使っているのではない。
>>>  ファイルのコピー先、コピー元を削除すると、上記領域が開放される。

ファイルをコピーするときは,元ファイルからデータをメモリに読み
込みながらそれを新しいファイルに書き込む動作をします.このとき
に,通常の場合は,読み書き共にページキャッシュを利用するので,
古いファイル分とあたらしいファイル分のメモリを使います.
サイズの2倍というのはたぶんここから出てきているのでしょう.

>   つまり、ディスクのリードキャッシュが開放されない、ということのよう
> です。これを強制的に開放する方法などはございますでしょうか?

Linux では,必要になったときに動作を行うようになっています.
ページキャッシュは空きメモリが少なくなってくると解放するように
なっています.まだ 2GB 程度の free があるので,解放する必要は
ありませんから,そのままページキャッシュとしてメモリ上に残りま
す.こうすることで,高速化をはかっています.長時間運用している
と,cached とか buffered の値が増え,free の値が少なくなります
が,必要になったときにキャッシュを解放し,メモリを確保しますの
で,問題ありません.

で,今回の場合は,コピーするときに ENOMEM などが発生し,コピー
できないということでしょうか?
-- 
Taku YASUI <tach@debian.or.jp>