社内で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 件のコメント:
コメントを投稿