polipo のディスクキャッシュサイズ
なんだか polipo という proxy server が流行っているみたいなんで、物は試しと Mac 用 GUI がついてる Dolipo を入れてみた。読み込みも速いし、Activity Monitor で見ても CPU とメモリーの使用量も少ない。良いんじゃないかと思って2日程使ってみたら、キャッシュサイズが1.5GB超えてる!
なんてこったと思い、ディスクキャッシュを制限する設定は無いかなとマニュアルを探してみたら…
The variable maxDiskCacheEntrySize specifies the maximum size, in bytes, of an instance that is stored in the on-disk cache. If set to -1 (the default), all objects are stored in the on-disk cache,
[Disk cache - The Polipo Manual]
Polipo never removes a file in its on-disk cache, except when it finds that the instance that it represents has been superseded by a newer version.
maxDiskCacheEntrySize(単位は byte )でキャッシュする単一ファイルの最大サイズは指定できるようだが、デフォルトでは制限無し。しかもファイルが更新されるまでそのままという男前な仕様。
またメーリングリストを探すとこういう記述も見つかった。
> i wondered if it's possible to limit the total size of the cache on disk.
No. Polipo doesn't maintain an index of the on-disk cache
どうも polipo ではキャッシュのトータルサイズを一定に制限する方法はないらしい。そりゃ容量くうわけだ。恐らく動画サイトをよく見る人は、初期設定のままで使っていると非常にすてきな事になると思われる。
ただ polipo のキャッシュを削除する方法も一応あるらしい。
- polipo -x
- polipo に -x オプションを付けて実行すると、アクセスされていないファイルを削除したり、でっかいファイルを truncate(いまいち意味が分からない)出来る。
$ killall -USR1 polipo $ sleep 1 $ polipo -x $ killall -USR2 polipo
なお「アクセスされていない」の期間だが32日(dolipo では7日)と長めに設定されている。diskCacheUnlinkTime で変更可能。 - polipo-trimcache スクリプト
- キャッシュを指定サイズ以下にしてくれる python スクリプト。
$ polipo_trimcache-0.2.py /path/to/cache/polipo 500M
こんな感じで引数にキャッシュディレクトリとサイズを指定して実行する。cron か OS X 10.4 以降なら launchd で定期的に回すのが現実的な方法だろうか。ただしそんなに速くない。 - Disk quota
- polipo を特定のユーザ、例えば polipo とかで実行して、そのユーザに disk quota で制限しとくという方法。OS X で disk quota をかけられるのかどうかは知らない。
うーん、どれもかったるい。設定で「キャッシュは1GB 以下ね、それ以上になったら適当に削除しといてね!」とか出来れば良いんだが。
<追記>
dolipo 1.0.7 でpolipo_trimcache を起動時と24時間毎に実行する機能と、キャッシュするファイルの上限(maxDiskCacheEntrySize なのかな?)を設定できるようになっています。これでディスク容量に関してはそんなに心配しなくていいかも。
</追記>
まとめ
- polipo はキャッシュを削除しない。
- キャッシュを削除するときは polipo -x を実行
- diskCacheUnlinkTime を小さい値にすると多分沢山削除される。
- デフォルトではどんなでっかいファイルもキャッシュする
- maxDiskCacheEntrySize でキャッシュするファイルサイズの上限を指定可能
- ただし maxDiskCacheEntrySize を超えるようなストリーミング動画等で途中から再生されなくなる場合があるかも
- 設定の変更は Polipo configuration から
- とりあえず polipo-trimcache を定期的に実行しとくと吉
- 関連記事
- この記事へのトラックバックURL
- http://wildlifesanctuary.blog38.fc2.com/tb.php/158-81c51f0e
- この記事へのトラックバック
- この記事へのコメント
| HOME |