I’m hungry

おもにAmazonでの衝動買いや技術的な話をぼちぼちと。

linuxのキャッシュ強制解放(ページキャッシュ&Slabキャッシュ)

2008-12-15 15:12:55 | ネットサービス/テクノロジ
2009年4月16日追記:
どうやら、以下の情報のこの部分


で、デフォルトの状態に戻したいときは0を入れれば良い。


は間違ってる(というか、1:drop_pagecache()とか2:drop_slab()をビット演算で渡すとキャッシュの破棄処理が動くけど、0を入れたって何も起きない)らしい。追記しておく。

ネタ元:続 @ITのmeminfoの見方の説明が完全に間違っている件について

要するに、0なんか書き込んでも無視されているだけである。drop_cachesはいかなる状態も管理なんかしていない。
ただのキャッシュ破棄用のインターフェースにすぎない

まあ、結局試せてないんですけどね...orz


------以下、元の記事内容

色々記事が載ってますな。
どれも結構最近なのはなんでだろう...

■ページキャッシュの強制解放

# /bin/sync
# echo 1 > /proc/sys/vm/drop_caches
#


/proc/sys/vm/drop_cachesの中身を1にすればページキャッシュを解放してくれる
模様。2だとSlabキャッシュを解放したい時、3だとその両方を解放するようです。
で、その際事前にsyncしておいた方が良さそうとのこと。まあメモリ上のデータを
一気に解放するわけだから当然といえば当然か。

#昔リブートするときにsyncを3回繰り返していたのを思い出す...古いなぁ

で、デフォルトの状態に戻したいときは0を入れれば良い。

■デフォルトの状態に戻す

# echo 0 > /proc/sys/vm/drop_caches


で、なんでキャッシュを解放したいかというと、とあるマシンから大量のデータをrsyncしていたらある程度進むとメモリのfree領域がほとんど無くなってkswapdがCPUリソースを99%とか使うようになり、最後はハングしてお亡くなりになる事象が発生していたりする。

ssh使っているのでなんか変なところでリークを起こしてるかデッドロックが
発生してるんじゃないかと推測。


で、ふと気づいた。



このマシン、kernel2.4だわ。orz
(このTipsはkernel2.6.16以降じゃないと使えない)

他人仕様になってるせいで古いOSいれっぱなしだけど、
いい加減新しくOS入れ直すか...。

--------------参考URL--------------------

■ページキャッシュの手動解放 - jitsu102の日記
http://d.hatena.ne.jp/jitsu102/20081105/1225888613

■[Linux]ページキャッシュをクリアする - ぼうずの日常的雑感
http://d.hatena.ne.jp/bowez/20080416

■空きメモリの確保の仕方(メモリーチューニング)(kernel2.6) - 「きまぐれPCひろば」のTOPICS
http://chiji.atnifty.com/topics/?p=16

■Linux+DB2のパフォーマンスチューニング - ThinkIT
http://www.thinkit.co.jp/free/tech/23/10/

■Linux におけるメモリの解放(vm.drop_caches) ( ・∀・)ジサクジエン
http://pooh.gr.jp/item-5477.html

■第1回 減り続けるメモリ残量! 果たしてその原因は!? - @IT
http://www.atmarkit.co.jp/flinux/rensai/tantei01/bangai01c.html







ジャンル:
ウェブログ
Comment   この記事についてブログを書く
« emobileデータ通信カードD21H... | TOP | Google Application Engineの... »
最近の画像もっと見る

post a comment

ブログ作成者から承認されるまでコメントは反映されません。

Recent Entries | ネットサービス/テクノロジ

Similar Entries