« squid 3.5.12-20151128-r13959 のビルド(成功手順編) | トップページ | squid 3.5.12-20151128-r13959 解説編Ⅱ(ビルド) »

2015年12月26日 (土)

squid 3.5.12-20151128-r13959 解説編Ⅰ(起動・設定)

squid2系から乗り換えたのでいろいろ変わっていて戸惑いました。戸惑ったところを解説。

(1) cossが無くなりrockになった

不安定なので・・・ということらしい。キャッシュファイルに互換性は無いので、キャッシュディレクトリごと再作成する必要がある。

(2) 起動するプロセス数が違う。マルチインスタンスやSMPを意識しなくても複数起動する

psコマンドで確認するとずいぶんたくさん起動する。

$ ps -ef|grep squid
root 29463 1 0 12月23 ? 00:00:00 /usr/sbin/squid -YC -f /etc/squid/squid.conf
proxy 29465 29463 0 12月23 ? 00:01:10 (squid-coord-3) -YC -f /etc/squid/squid.conf
proxy 29466 29463 0 12月23 ? 00:01:24 (squid-disk-2) -YC -f /etc/squid/squid.conf
proxy 29467 29463 0 12月23 ? 00:19:38 (squid-1) -YC -f /etc/squid/squid.conf

squid-1が今までのsquidに相当する。メモリとcache_dirのaufs担当。
squid-disk-2は、cache_dirのrock担当。
squid-coord-3は、コーディネーターと呼ばれるプロセス。

数字部分は、squid.confで ${process_number}に紐付く。
ログやキャッシュマネージャの出力ではkidXと表現される。

(3) プロセスが増えた分、ログも分けるのが吉

access.log,cache_logが1つでも動くことは動きます。しかしログローテーションするときプロセスの数だけローテーションするので、よくわからないことになります。例えば、今回のようにプロセスが4つあると、いきなりaccess.log.0,access.log.1,access.log.2,access.log.3の4つが出来てしまう。しかも同時にローテートしているので0バイト。事情がわからずバグかと思った。
なので、squid.confのログ名定義はプロセス番号を入れると良いと思う。

squid.conf
----
access_log /var/log/squid/access_${process_number}.log
cache_log /var/log/squid/cache_${process_number}.log
cache_swap_log /var/log/squid/cache_swap_${process_number}.log
----

(4) rockのチューニングは必要

http://wiki.squid-cache.org/Features/RockStoreに書いてあるけど、rockはチューニングしないとパフォーマンスが出ないらしい。

ディスクIOが間に合わないと取りこぼす。cache.logにこんなメッセージが出る。
----
2015/12/15 22:24:26 kid1| WARNING: abandoning 22 /mnt/jetflash2/squid/rock I/Os after at least 7.00s timeout
---
なので、そうならないように制限する。

max-swap-rateの目安
1秒当たりのスワップ数の平均IO回数の上限。
一般的には200、速いディスクなら300、それほど速くないディスクなら100が目安。

swap-timeoutの目安
スワップするときのIO待ちのms(ミリ秒)。あまり小さくするとタイムアウトしてディスクに書き込めないし、読み出せない。つまりキャッシュミスになる。逆に大きくしすぎるとHIT時の待ち時間が長くなる。
よくわからなければ、300くらいから始めてみる。

TranscendのJETFLASH750というUSBメモリを使っているが、以下設定だと1%程度のエラーが出る。
cache_dir rock /mnt/jetflash2/squid 8000 max-size=65536 max-swap-rate=320 swap-timeout=350

僕の環境ではmax-sizeを調整することも結構有効だった。512KBくらいまで上げるとエラーが1桁アップする。

結果はsquidclientコマンドで確認できる。
$ squidclient cachemgr mgr:store_io
----
Store IO Interface Stats
create.calls 17830
create.select_fail 75
create.create_fail 114
create.success 17641
----

(5) 起動時、disk-cacheとmem-cacheのよくわからないワーニングが出る

$ sudo grep -i warn cache_1*
----
2015/12/23 01:21:03 kid1| WARNING: disk-cache maximum object size is too large for mem-cache: 131072.00 KB > 32.00 KB
----
これは調べてみたけど、よくわからない。そのまま使っている。

とりあえずこんな感じかな。
次回は、解説編Ⅱ(ビルド)の予定。

« squid 3.5.12-20151128-r13959 のビルド(成功手順編) | トップページ | squid 3.5.12-20151128-r13959 解説編Ⅱ(ビルド) »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/143173/62938753

この記事へのトラックバック一覧です: squid 3.5.12-20151128-r13959 解説編Ⅰ(起動・設定):

« squid 3.5.12-20151128-r13959 のビルド(成功手順編) | トップページ | squid 3.5.12-20151128-r13959 解説編Ⅱ(ビルド) »

最近のトラックバック

2017年4月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
フォト
無料ブログはココログ