• ベストアンサー

squidのフリーズ?についてです!

こんにちわ。田中と申します。 会社でproxyサーバを管理しています。 A・Bと2台立ててまして普段は両方とも問題なく稼動しているのですが Aだけ1~2ヶ月に1度、ものすごくcpuに負荷がかかり squidが機能しなくなる事があります。 コマンドを叩こうにもレスポンスが著しく悪く なんとか再起動したら元に戻ります。 同様のトラブルを防ぐ為に ログ等を見て原因を解明しようと思うのですが どこから調べたらいいのでしょうか。 負荷が異様にかかった状態が続く事はどういう事が考えられるでしょうか? ヒントをお願いします! ちなみに環境は OS:RedHat6.0 squid:2.2STABLE4 ハード:Compaq PROLIANT1850R squid.confの設定 cache_mem 24 MB cache_dir /var/spool/squid 2048 16 256 dns_children 30 refresh_pattern . 0 20% 43200 reference_age 1 month squid以外にはdelegateを動かしてるくらいです。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • you-m
  • ベストアンサー率58% (190/327)
回答No.3

フォローが遅くなりました。 まず、見なければならないのは、極端に重くなる時間の直前のログですよね。 これは、普段からログを見る習慣をつけた上で、いつもと何が違うかを見極めなければなりません。 トラブルは何も、必ず分かりやすいエラーが出ているとは限りません。特に今回の場合などは、プロセスが落ちてるとかではなく、非常に重くなっているという現象であるため、エラーという形では出ていないと思われます。 となると、正常稼動時と何が違うのかが問題になってくるのです。 先の回答で例としてあげたのは、特定のクライアントが大量のダウンロードをしているかもしれないといった物ですが、処理自体は正常に行われていたとしても、システムにスペックの許容範囲以上の負荷をかけているかもしれません。そしてそういった状況は、ログを見ることで該当の時間に特定のクライアントがどこかにアクセスしてるな等の情報をログから読み取れるかどうかが鍵になります。 もちろん、これは例ですから別にこういう原因だと言うつもりであげているわけではありませんよ。 delegate側に原因があるのかもしれませんし、他の全く関係無い部分かもしれません。 しかし、それを特定できるのはatushi_tさんご自身しかいないのです。 こういってはなんですが、今後もこういった環境について会社で関わっていかなければならないのであれば、専門の業者と保守契約を結ぶか、UNIXのシステム管理についての基礎を少なくとも学んだ方が良いかと思いますよ。

atushi_t
質問者

お礼

ご返答ありがとうございます。 ログを確認する癖の重要性がわかりました。 起きてから動くのでは限界がありますね。 日々、トラブルのおきない環境作りとログの確認を心掛けます。 勉強になりました。 ここで一旦この問題について締め切らせていただきます。

その他の回答 (2)

  • you-m
  • ベストアンサー率58% (190/327)
回答No.2

A,Bが並列に動作しているのか、それともカスケードしているのかで、変わってきますが、並列に動作していて利用しているクライアントにも違いがあるのなら、月に2回くらい死ぬほど負荷をかけるようなデータ転送をしているPCがあったりする可能性もありますね。ひょっとすると複数台。 もちろん絶対ではないんですが、例えばWinのオフラインコンテンツの同期機能は、凶悪なまでに経路上のシステムへ負荷をかけます。 同期先のサイトの内容にもよりますが、データ量の多いサイトの場合、中継しているプロキシにもかなり負荷がかかるのでは無いかと・・・ まあ、トラブルシューティングの基本は、alfeimさんのおっしゃるようにログの解析からです。 まずは、そこから見てみたらどうですかね。

atushi_t
質問者

お礼

>まあ、トラブルシューティングの基本は、alfeimさんのおっしゃるようにログの解析からです。 >まずは、そこから見てみたらどうですかね。 恥ずかしながらどこから見てよいのか・・・。 ちなみにA・Bは並列に動作しており、仰った通りクライアント数も違います。 問題のAの方が利用者が多いと思われます。 本当に初心者的な質問で恐縮ですが宜しくお願いします。

  • alfeim
  • ベストアンサー率58% (114/195)
回答No.1

まずはerror.logやsyslog、およびそれらの過去分を見てwarningなりerrorなりの通知が無いかを探しましょう。 止まった日付と時間が分からないのならば、再起動して解決なされているようですのでsyslogから再起動時のログを探してその前方を調べます。 何らかのログが出てればそれを元に調べましょう。 ログに何も出ていなければ、topコマンドを動かしっぱなしにしておいて問題発生時にCPUを持って行っているプロセスを特定します。 そうやって問題のプログラムの特定ができたら、設定ファイルなどを良く調べて原因を特定、回避方法を探しましょう。

atushi_t
質問者

お礼

ご返答ありがとうございます。 恥ずかしながら、error.logやsyslogはどこを見ていいのかわかりません。 /var/log/boot.logでshutdownした時間はわかったのですが・・・ また、squidのaccess.logを見てもどれがいつのログかどうやって見るのでしょうか? 1016769576.644  8 172.**.**.** TCP_IMS_HIT/304 213 GET http://www.vector.co.jp/images/menu/vector_logo.gif - NONE/- image/gif といった感じでいつなのかわかりません。。 #topコマンドって便利なコマンドがあるんですね! #cpu使用率がわかりすごいわかりやすい!