« 2006年09月 | メイン | 2006年11月 »

2006年10月11日

mod_proxyのretryを2段階にするpatch

mod_proxy_balancerのretryの「retryの秒数を2段階に」の件。
本格的にはサービスで使っていないのだが、patchを作って動くことは確認してる。

patchを適用すると、quick_retryとquick_retry_maxという設定が増えます。BalancerMemberがfailしたあと、quick_retry_max回はquick_retry秒間隔で接続を確認して、それ以降は通常通りretry秒毎になります。

設定は

BalancerMember http://127.0.0.1:81 loadfactor=10 retry=60 quick_retry=3 quick_retry_max=40 

な感じ。

mod_proxy_qretry.patchにpatch置いておきます。


このpatchは結局、Deployツールでproxyのdrop/addを行うようにしたのでサービスでは使っていません。
HTTP::Asyncでbalancer-managerを叩いてます。

use HTTP::Async;
use HTTP::Request;
my $async = HTTP::Async->new;
foreach my $url ( @$urls ) {
    $async->add( HTTP::Request->new( GET => $url ) );
}
while ( my $res = $async->wait_for_next_response ) {
    $ret{$res->request->uri}=$res->content;
}

これだけで、非同期アクセスができるのがすばらし。

2006年10月06日

Squid2.6 のCOSSがいい感じ

Squidの比較的新しいcache_dirのCOSSが結構いい感じに動いている。

COSSだと、cache objectが1つの大きなファイルに納められるので、ディスクIOがかなり改善しています。
あまり情報がないのですが、Wikiに設定の説明と、aufsとの比較とかがあります。

cache_dir coss /var/spool/squid/coss 30000 block-size=2048 max-size=500000
cache_swap_log /var/spool/squid/%s


こんな感じの設定のサーバで、cache個数 50万ファイル以上、最大リクエスト数500req/sec以上、Hit rateが99%の状態において、CPU負荷がUser:数%、iowait:1%弱とかで推移。もうちょっとcache個数の多いサーバでもiowait:1%強なので非常にいい感じです。

coss++
squid 2.6は設定項目が増えていてまだまだ調査中