2015年6月15日月曜日

Squidがお昼に遅い件

社内でProxyにSquidを使用していますが、最近お昼が相当遅いという苦情がありました。その先にあるFireWallの能力不足だと思っていましたが、その前に対応する方法がないか探してみました。

Squidがアクセス集中時に遅くなったときに行った対策

やはり同じような問題に対応している方がいらっしゃいます。こちらのページを参考にログを確認してみると、cache.logを見てみると、確かにYour cache is running out of filedescriptorsというメッセージが頻発しています。

Squidで接続数がオーバーしてデスクリプタエラーが出た時の対処方法

こちらのページに書いてあるように、コマンドで確認してみます。

# squidclient -p 8080 mgr:info | grep 'file descri'
        Maximum number of file descriptors:   1024
        Available number of file descriptors:  213
        Reserved number of file descriptors:   100

Squidを標準ポートで動かしている場合は8080=>3128等に変更します。

10:00過ぎに試してみましたが、残りは213しかないようです。

squid.confに以下を記述してみます。

max_filedesc 4,096

Firewall側のセッションはお昼に10,000を超えているますが、まずは4,096にに設定してみます。

この変更はサービスをリスタートしないと適用されないようです。squidのリスタートは若干時間がかかるので、設定のみ変更してお昼にリスタートすることにします。

プロキシサーバーのインストール

上記のサイトを参考に、合わせてsquid.confの内容を見なおしてみます。

キャッシュサイズは小さかったのでこちらの変更しておきます。


お昼になったのでこっそりsquidをリスタートします。

squidclient -p 8080 mgr:info | grep 'file descri'
        Maximum number of file descriptors:   4096
        Available number of file descriptors: 1694
        Reserved number of file descriptors:   100

何度かコマンドを実行しましたが、最も少ない数値で1694でした。あくまでもコマンドを実行した結果ですが。元々1024では全く足りていないことがよくわかりました。

キャッシュも従来の4倍に設定してみたので、改善したような気もします。

cache_dir ufs /var/spool/squid 2000 16 256

以上Squidがお昼に遅い件でした。

0 件のコメント:

コメントを投稿