• ベストアンサー

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使用率がわかりすごいわかりやすい!

関連するQ&A

  • Squid-3.1.16の設定について

    Squid-3.1.16で「reference_age」が認識されません LPIC202の勉強のため、CentOS5.6でsquidの設定を行っていたのですが Squid-3.1.16で「reference_age」が認識されていないように思えます。 squid.confには以下のように記述しています。 ----------------------------------------- reference_age 1 days ----------------------------------------- squidの起動を試みると以下のメッセージが出力されます。 ----------------------------------------- cache_cf.cc(381) parseOneConfigFile: squid.conf:46 unrecognized: 'reference_age' ----------------------------------------- 「reference_age」の行をコメントアウトすると、正常に起動されるので この行の指定に誤りがあるのか、それとも「reference_age」は何れかの verで削除されてしまったのでしょうか? 申し訳御座いませんが、ご教授頂ければ幸いです。

  • squidについて

    Solaris初心者で、現在Solaris9でPROXYサーバを構築しています。 OSインストールし、gccをインストール、その後SquidをいろんなHPを参考にしながらインストール、squid.confを設定しました。 squidを初期化(コマンド:/usr/local/squid/sbin/squid -z)をしたら以下のような表示がでて、PROXYサーバを構築できない状態です。 FATAL:Could not determine fully qualified hostname. Please set 'visible_hostname' squid cache (Version 2.5.STABLE5):Terminated abnormally Aug 31 20:00:00 proxy squid[1686]:Could not determine fully qualified hostname. Aug 31 20:00:00 [ID 702911 user alert]Could not determine fully qualified hostname. 何が悪いのかまったくわからない状態です。 squidのインストール方法、squid.confの設定方法などご教授願います。

  • squidのWARNING

    こんにちわ。 Redhat7.3+squid-2.4.STABLE6-6.7.3でProxyサーバを構築しています。 squid.confの設定で、"cache_dir diskd ~"と設定した場合、squidのログに、以下のようなWARNINGが表示されます。 "2003/01/22 19:18:12| WARNING: Disk space over limit: 1024464 KB > 1024000 KB" cache_dirで指定したディレクトリの容量を超えてしまうという警告だとは思いますが、アクセスされていないキャッシュから、徐々に削除していくものではないのでしょうか? ちなみに、"cache_dir ufs ~"と設定した場合は、この警告は表示されません。 「設定を変更すれば表示されなくなる」などの手段をご存知の方がいらしたら、よろしくお願いします。

  • squidが起動エラー アボート?

    RedHatLinux9でsquid 2.5.STABLE1-2を使用しています。 一通りsquid.confを編集して、起動しようとしたところ init_cache_dir /var/spool/squid... /etc/init.d/squid: line 162: 20457 アボートしました    $SQUID -z -F -D 2>/dev/null squidを起動中: /etc/init.d/squid: line 162: 20458 アボートしました    $SQUID $SQUID_OPTS 2>/dev/null [失敗] と、エラーが出て起動しません。 なぜでしょうか。 前に一度設定したことがあり、その時はうまくいったんです。 今回もまったく同じ設定をしているつもりなんですが。 よろしくお願いします。

  • squid の設定で IP を隠したい

    現在、TurboLinux6.0でsquidを使ってプロキシサーバーを動かしています。 http://www.taruo.net/e/?TARGET= のようなサイトで調べてみると下記のように情報 が出てしまいます。 REMOTE_HOST 202.****.***.210  REMOTE_ADDR 202.***.***.210  HTTP_REFERER (none)  HTTP_USER_AGENT . Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90) HTTP_ACCEPT . application/vnd.ms-excel, application/msword, image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, */* HTTP_ACCEPT_LANGUAGE . ja HTTP_HOST . www.taruo.net その他の情報 HTTP_X_FORWARDED_FOR . unknown HTTP_VIA . 1.0 proxy.yuntaku.com:730 (Squid/2.4.STABLE1) HTTP_CONNECTION . keep-alive  HTTP_CACHE_CONTROL . max-age=259200 掲示板などに接続もとがでるものがありますよね。それに書き込むとIPが書かれてし まいます。 これを何とか隠したい(又は別の名前にしたい)のですが、何か方法は無いのでしょ うか?

  • Squidが応答しません

    海外在住でその国にサーバーがあるVPS(CentOS 5)でSquid(v2.6 Stable21)を構築しましたが応答しません。 VPSにあるWebサーバー(Apache)にはアクセスでき、正常に表示されるのですが、Squidはうんともすんともいわないです。 Squidは起動しており、sudo /etc/init.d/squid status を実行すると、 squid (pid 2649) is running... と表示されます。 しかし、IEでプロキシの設定をしてアクセスすると「プロキシ サーバーは応答していません」と表示され、そのままネットワーク診断をすると「リソース(Webプロキシ)はオンラインですが、接続試行には応答していません。」と表示されます。 アクセスログは空のままで、リスタートした際のキャッシュログは以下のようになっています。 Basic認証等もしておらず、http_access allow allとしています(そもそもアクセスログに何も残っていないですが) VPS側から他のネットワークにpingを飛ばしてみても正常に動いていますし、クライアントからVPS側にpingを飛ばしても正常に返ってきます。 squid.outには何もエラーは表示されておらず、store.logも空です。 /etc/sysconfig/iptables に下記を追加し、ポート3128も解放しています。 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3128 -j ACCEPT また、クライアント側で他の公開されているプロキシを利用した際は正常に動いています。 何か考えられる原因や解決方法がありましたら、ご教示ください。 Preparing for shutdown after 0 requests Waiting 30 seconds for active connections to finish FD 14 Closing HTTP connection Shutting down... FD 15 Closing ICP connection Closing unlinkd pipe on FD 12 storeDirWriteCleanLogs: Starting... Finished. Wrote 0 entries. Took 0.0 seconds ( 0.0 entries/sec). CPU Usage: 0.012 seconds = 0.008 user + 0.004 sys Maximum Resident Size: 23984 KB Page faults with physical i/o: 2 Memory usage for squid via mallinfo(): total space in arena: 2508 KB Ordinary blocks: 2430 KB 5 blks Small blocks: 0 KB 5 blks Holding blocks: 244 KB 1 blks Free Small blocks: 0 KB Free Ordinary blocks: 77 KB Total in use: 2674 KB 97% Total free: 77 KB 3% Squid Cache (Version 2.6.STABLE21): Exiting normally. Starting Squid Cache version 2.6.STABLE21 for i686-redhat-linux-gnu... Process ID 2649 With 1024 file descriptors available Using epoll for the IO loop DNS Socket created at 0.0.0.0, port 41221, FD 7 Adding nameserver 8.8.8.8 from /etc/resolv.conf Adding nameserver 8.8.4.4 from /etc/resolv.conf User-Agent logging is disabled. Referer logging is disabled. Unlinkd pipe opened on FD 12 Swap maxSize 102400 + 8192 KB, estimated 0 objects Target number of buckets: 425 Using 8192 Store buckets Max Mem size: 8192 KB Max Swap size: 102400 KB Local cache digest enabled; rebuild/rewrite every 3600/3600 sec Rebuilding storage in /var/spool/squid (CLEAN) Using Least Load store dir selection Set Current Directory to /var/spool/squid Loaded Icons. Accepting proxy HTTP connections at 0.0.0.0, port 3128, FD 14. Accepting ICP messages at 0.0.0.0, port 3130, FD 15. WCCP Disabled. Ready to serve requests. Done reading /var/spool/squid swaplog (0 entries) Finished rebuilding storage from disk. 0 Entries scanned 0 Invalid entries. 0 With invalid flags. 0 Objects loaded. 0 Objects expired. 0 Objects cancelled. 0 Duplicate URLs purged. 0 Swapfile clashes avoided. Took 0.3 seconds ( 0.0 objects/sec). Beginning Validation Procedure Completed Validation Procedure Validated 0 Entries store_swap_size = 0k storeLateRelease: released 0 objects

  • PHP認証がProxy越しだと通らない現象

    サーバ環境: Linux Redhat Apatch php MySQL MySQLに登録してあるユーザ名とパスワードを読みにいって存在していればメインの画面に飛ぶphpで作成した認証画面があるのですが、proxyサーバ越しに認証をこころみると以下のようなエラーメッセージが出てしまいます。 HTTP/1.0 403 Forbidden Server: squid/2.5.STABLE9 Mime-Version: 1.0 Date: Thu, 21 Apr 2005 00:48:57 GMT Content-Type: text/html Content-Length: 1055 Expires: Thu, 21 Apr 2005 00:48:57 GMT X-Squid-Error: ERR_ACCESS_DENIED 0 X-Cache: MISS from Proxy Proxy-Connection: keep-alive Proxyの設定をはずして接続して同様に試みると問題なくメインの画面にいくのですがこれはなにが原因なのでしょうか?サーバの問題なのかphpの問題なのかproxyの設定なのかまったくわからず困っております。 宜しくお願いいたします。

    • 締切済み
    • PHP
  • proxyサーバのイーサ(MAC)アドレスでのアクセス制限

    proxyサーバ(squid/2.4 STABLE1)を運用しているのですが、このクライアントのアクセス制限を IPアドレスではなくイーサ(MAC)アドレスで行いたいと考えています。 アクセス制限は登録してあるイーサ(MAC)アドレスのみ許可することを考えていますが、クライア ントの数が800台くらいありますし、ある程度のアクセス数がありますので、あまり負荷の高くなる ような方法は避けたいと考えています。ソフト的に行うのに無理がありそうなら、別のハードウェア の導入も考えていますが、何かうまい方法ありませんでしょうか。 ちなみに、OSはSolaris8です。

  • プロキシサーバーでコンテンツの閲覧制限ができません

    Centos6.5の環境で、プロキシサーバーとしてSquidを使用しています。クライアントPCにはプロキシ設定をしてIEの閲覧が自由にできる状態です。 例えば、www.facebook.comの閲覧制限をしたいため、vi /etc/squid/squid.conf 内にacl denydomain dstdomain www.facebook.com を追加して、/etc/rc.d/init.d/squid のrestartを実行しましたが、クライアントPCから普通に見れています。何がいけないのでしょうか。squid.confの記載内容は以下のとおりです。 よろしくお願いします。 # # Recommended minimum configuration: # acl manager proto cache_object acl localhost src 127.0.0.1/32 ::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 # Example rule allowing access from your local networks. # Adapt to list your (internal) IP networks from where browsing # should be allowed acl localnet src 10.0.0.0/8 # RFC1918 possible internal network acl localnet src 172.16.0.0/12 # RFC1918 possible internal network acl localnet src 192.168.0.0/16 # RFC1918 possible internal network acl localnet src fc00::/7 # RFC 4193 local private network range acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # from where browsing should be allowed http_access allow localnet http_access allow localhost http_access allow lan # And finally deny all other access to this proxy http_access deny all acl denydomain dstdomain www.facebook.com # Squid normally listens to port 3128 http_port 8080 # We recommend you to use at least the following line. hierarchy_stoplist cgi-bin ? # Uncomment and adjust the following to add a disk cache directory. #cache_dir ufs /var/spool/squid 100 16 256 # Leave coredumps in the first cache dir coredump_dir /var/spool/squid # Add any of your own refresh_pattern entries above these. refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern . 0 20% 4320 request_header_access Referer deny all request_header_access X-Forwarded-For deny all request_header_access Via deny all request_header_access Cache-Control deny all visible_hostname prox.hogehoge.jp forwarded_for off

  • 古いブラウザでインターネット

    お世話になります。 完全に趣味の世界の話です。 古いブラウザでインターネットをする方法を検討しています。 古いパソコンにインストールされているブラウザ、 SSL2.0、SSL3.0、TLS1.0にしか対応していないようなブラウザだと、 昨今のhttpsのウェブサイトは表示されず、httpの非暗号サイトしかアクセスできません。 以前、squidによるリバースプロキシで、80番のHTTPサーバに対して外部からのアクセスは、https化しているように見せかける…という方法が取れるというのは知っていたのですが、 proxyなどの中継サーバーを自宅内に立ち上げて、 通常のインターネット通信は、Proxyサーバー経由、 ローカル側のブラウザ-Proxyサーバー間は、ssl2.0や、もしくはhttpsリクエストを、proxy側でhttp化してアクセス。 (ローカル端末からはhttpアクセスでproxyサーバにキャッシュされたhttps(tls1.2→ssl2.0化)のWebサイトを見る。) といった事は現実的に可能でしょうか。 よろしくお願いいたします。