Squid/キャッシュストレージとして COSS を使う
提供:maruko2 Note.
squid のキャッシュストレージとして COSS (Cyclic Object Storage System) を設定したときのメモ。
squid のデフォルトキャッシュストレージである ufs は、1 オブジェクトを 1 ファイルとして記録するため、ディスク I/O に負荷がかかるが、COSS ではキャッシュストレージが 1つのファイルになりそのファイルにファイルシステムをつくるため、ディスク I/O が劇的に少なくなるらしい。
目次 |
インストール
COSS を有効にするため再ビルドする必要がある。(CentOS 5 の rpm は COSS が有効になっている。squid -v で確認。)
./configure の --enable-storeio= で coss を指定する。
# ./configure --enable-storeio=null,ufs,aufs,coss
設定
squid.conf
### cache_dir coss cache_dirの場所 cache_dirサイズ[MB] 最大オブジェクトサイズ[bytes] cache_dir coss /var/spool/squid/coss 2048 max-size=1048576 ### COSS を使う場合 cache_swap_log が必要 cache_swap_log /var/spool/squid/cache_swap_log
COSS ストレージを使う場合、cache_swap_log を指定する必要がある。 |
- block-size=N
- デフォルト値: 512 [bytes]
- cache_dir のブロックサイズを定義する。
- Squid は、ブロック数をファイル番号として使う。
- ファイル番号(ブロック数)は24ビットまでに制限されるため、block-size は COSS パーティションの最大サイズを定義する。
- block-size=512 とした場合の cache_dir 最大サイズは 8GB になる。
-
512bytes x 24bit [16,777,216] = 8192Mbytes
- Squid が cache_dir に何かを書き込んだ後に block-size=N を変更してはいけない。
block-size cache_dir の最大サイズ[MB] block-size=512 (default) 8129(8GBまで) block-size=1024 16258(16GBまで) block-size=2048 32516(32GBまで) block-size=4096 65032(64GBまで) block-size=8192 130064(128GBまで)
- cache_dir のサイズを 20GB にしたい場合は、次のように記述する。
cache_dir coss /var/spool/squid/coss 20480 block-size=2048 max-size=1048576
- max-size=N
- 必ず指定する必要がある。
- cache_dir にためる最大オブジェクトサイズを定義する。
- ./configure で指定する --with-coss-membuf-size=N の値以下にする必要がある。
- --with-coss-membuf-size=N のデフォルト値は 1048576 bytes になっている。
キャッシュストレージの作成(cache_dir の作成)
COSS キャッシュストレージを作るには、ufs と同じ squid -z コマンドで作る。
# squid -z 2008/12/27 10:09:24| Creating Swap Directories