« Linuxでやる夫 | トップページ | [postgersql] やる夫はsql結果の実行時間を出力させたいようです。 »

2008-02-29

やる夫がapacheのコネクション数を調べるようです。

apacheのコネクションについて

急にアクセス数が増えて、サービス中のサイトが重くなることがあると思います。単にアクティブユーザ数が増えた・・・または、スパムが襲撃してきた等原因は様々ですが、リアルタイムでのapacheの稼動状況を調べる方法があります。

         ____
       /::::::::::  u\  
      /:::::::::⌒ 三. ⌒\    あれ?
    /:::::::::: ( ○)三(○)\       サイトおもくね・・・?
    |::::::::::::::::⌒(__人__)⌒  | ________
     \::::::::::   ` ⌒´   ,/ .| |          |
    ノ::::::::::u         \ | |          |
  /:::::::::::::::::      u       | |          |
 |::::::::::::: l  u             | |          |
 ヽ:::::::::::: -一ー_~、⌒)^),-、   | |_________|
  ヽ::::::::___,ノγ⌒ヽ)ニニ- ̄   | |  |

       ____
     /      \
   /  _ノ  ヽ、_  \
  /  o゚⌒   ⌒゚o  \   こんなときに限って、やらない夫が出張だお!
  |     (__人__)    |  
  \     ` ⌒´     /

やる夫が運用しているサイトで、またトラブルが発生したようです・・・。

        ____
     /⌒三 ⌒\
   /( ○)三(○)\     DBにあたりをつけたけど、いたって健康・・・

  /::::::⌒(__人__)⌒::::: \      APLも挙動しているように見えるお・・・
  |     |r┬-|     |
  \      `ー'´     /

         ____
       /   u \
      /  \    /\    きっと自然復旧するはず・・・。
    /  し (>)  (<) \  
    | ∪    (__人__)  J |  ________
     \  u   `⌒´   / | |          |
    ノ           \ | |          | 
  /´                | |          |

         ____
       /   u \
      /  \    ─\    チラッ
    /  し (>)  (●) \
    | ∪    (__人__)  J |  ________
     \  u   `⌒´   / | |          |
    ノ           \ | |          | 
  /´                | |          | 

         ____
       /::::::::::  u\  
      /:::::::::⌒ 三. ⌒\    全く使えなくなってる・・・。
    /:::::::::: ( ○)三(○)\ 
    |::::::::::::::::⌒(__人__)⌒  | ________
     \::::::::::   ` ⌒´   ,/ .| |          |
    ノ::::::::::u         \ | |          |
  /:::::::::::::::::      u       | |          |

そうかんたんに自然復旧することは、あんまないです。やる夫が、ちょっと大変なことになっています。DBは正常でAPLリソースも問題ないようです。何が原因なんでしょうか?こういうときはアプリ側で、口を絞っていることが考えられます。apacehのMaxClientsが足りないと予想できます。

ココでapacheのMaxClients数を増やすと、アプリサーバとDBサーバの負荷が懸念されます。今回は、apacheのコネクション数を枯渇した原因を、スパム等のアタックとします。

すると対応としては、特定のIPアドレスを指定して、フィルタでIPを絞るか、apacheでACL設定を追加する必要があります。

      ____
      /_ノ ヽ、_ \
   o゚((●)) ((●))゚o   MaxClientsを70→100に変更してみたら
  /::::::⌒(__人__)⌒::::::\      なんとか復活したようだお!
  |       |r┬-|     |
  \     `ー'´     /

mod_status 設定方法

apaceh2.0から”mod_status”モジュールがインストール時の設定で利用できるようです。

# ./configure
# make
# make install
# vi /usr/local/apache2/conf/httpd.conf
-----
<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 192.168.2.0/24
</Location>
-----

  • インターネットに晒すのもあれなので、ACL設定しちゃいましょう。

mod_status 確認方法

http://yaruo.neet.com/server-status へアクセスすればよいです。

対象ホストからの参照方法は・・・。

# wget http://yaruo.neet.com/server-status
# grep "requests currently being processed" server-status
<dt>82 requests currently being processed, 18 idle workers</dt>

この例だと、MaxClientsは100でコネクションが82消費していることになります。当初のMaxClientsは70だったので、口が間に合わなかったようですね。


       ____
     /      \
   /  _ノ  ヽ、_  \    なんとかたすかったお・・・
  /  o゚⌒   ⌒゚o  \     やっぱりやる夫はやればできるおだお
  |     (__人__)    |
  \     ` ⌒´     /

|

« Linuxでやる夫 | トップページ | [postgersql] やる夫はsql結果の実行時間を出力させたいようです。 »

apache」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/488651/10829468

この記事へのトラックバック一覧です: やる夫がapacheのコネクション数を調べるようです。:

« Linuxでやる夫 | トップページ | [postgersql] やる夫はsql結果の実行時間を出力させたいようです。 »