レンタルサーバー
BIG-server.com
簡単・はやい・大容量・どんな目的にもマッチするレンタルサーバー
HOME プライス お見積もり・プラン選択 お申し込み ユーザーサポート お問い合わせ

■ 【ぷろじぇくと ぞうさん】 〜E-Bananaサーバ 構築日記〜

1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
71日目 72日目 73日目 74日目 75日目 76日目 77日目
目次に戻る
第20日目:Coffee Break 〜Apache(mod_status)について〜

どうも、('A`)です。
最近社内では「日記を書いている変なおじさん」と呼ばれています(泣
どうも日記を書いている時に思わず「あー」とか「うー」とか独り言が出ている様で
気がつくと生暖かい視線で見られています。。。

えーと前回の日記でも書きましたが、思う様にテスト環境が動いてくれません。
もしかすると設定とかインストールに問題があったのかと思い、もう一度「雪だるま」
スレッドとか「特化型」スレッドとかを最初から読み返しているところです。
ただ、読む対象のスレッドの数が半端無く多くて大変ですが・・・
運用情報の「特化型」スレッドは現在Part 27まで、難民板の「雪だるま」スレッドに
至ってはPart 75まであります。
(こんな時、「●持ってて良かった〜」と思います。)

しかし、、、未だに解決方法が見つかっていません。
4台のサーバは同一サブネット(同じIP大台:206.223.147.xxx)で用意したけど
違うスイッチにそれぞれ接続しているから、それがまずいのかなあ。
もしくはロードバランサー用サーバのNICが1つだけで、それで外部からの
アクセスの受け取りとmatdからの出力を兼用しているのがまずいのかなあ・・・
引き続き調べよう。


という訳で、予告通りにCoffeeBreackとなりました(涙
さて今日の題材は、と言いますとApacheの「mod_status」についてです。
自分でサーバを構築・運用している人ならばサーバ管理という点からも
導入する事をお勧めします。便利なツール(機能)です。
(「言われなくても入れてるわいっ!」って返されそう・・・('A`))

「mod_status」はApacheの現在の動作・負荷状況を把握するのにApacheで
提供されている機能です。
Apacheをインストールすると組み込み型モジュールとして標準で入ります。
(かなり古いバージョンだったり、./configure時に --disable-status なんて
指定していると入っていないかも、です。)
ちなみにT-Banana版のApacheでは以下のモジュールが組み込み型として
インストールされています。
(自分でサーバを構築している人やroot権限付サーバを運用されている人は
スーパーユーザモードから httpd -l とコマンドを入力すると、サーバに
組み込まれているモジュールの一覧が表示できます。)
今回はT-Bananaのパッケージをインストールしたサーバ(banana260)を例に
説明を続けます。

[Apache組み込みモジュール(T-Banana版)]
core.c
mod_access.c
mod_auth.c
mod_include.c
mod_deflate.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_ssl.c
prefork.c
http_core.c
mod_mime.c
mod_status.c
mod_autoindex.c
mod_suexec.c
mod_cgi.c
mod_dir.c
mod_userdir.c
mod_alias.c
mod_rewrite.c
mod_so.c

mod_statusのモジュール(mod_status.c)が入っている事が確認できたら、
Apacheの設定ファイル(httpd.conf)に以下の記述を入れます。

1)とりあえず情報を出したい場合
ExtendedStatus Off
<Location /server-status>
SetHandler server-status
Order allow,deny
Allow from all
</Location>

2)詳細情報を出したい場合
ExtendedStatus On
<Location /server-status>
SetHandler server-status
Order allow,deny
Allow from all
</Location>

上記の様に設定ファイル(httpd.conf)を修正・保存したら、Apacheを再起動して、
ブラウザから http://ホスト名/server-status/ にアクセスしてみて下さい。

1)で指定した場合にはこんな形式のページが、
2)で指定した場合にはこんな形式のページが
表示されます。

表示されている内容は大きく分けて、次の2つから構成されています。
 a) Apache全体の基本情報と稼働状況情報
   (先頭から 「1 requests currently being processed, 31 idle workers 」のところまで)
 b) Apacheの各プロセス単位での稼働状況・情報
   (「1 requests currently being processed, 31 idle workers 」の次から最後まで)
2)の方が表示される内容(項目)が多くなります。

まず a) Apache全体の基本情報と稼働状況情報で表示される内容(項目)は以下の通りです。
Server VersionApacheのバージョン
Server BuiltApacheをコンパイルした日
Current Time現在の時刻
Restart TimeApacheを起動した時刻
Parent Server Generation再起動した回数
Server uptime連続稼働時間
Total Accessesトータルアクセス数
Total Trafficトータル転送量
CPU UsageCPU使用率
u通信プロセスが消費したCPU時間(秒)
s通信プロセスによりシステムが消費したCPU時間(秒)
cuCGIアクセスにおいて生成した子プロセスが消費したCPU時間(秒)
csCGIアクセスにおいて生成した子プロセスによりシステムが消費したCPU時間(秒)
ReqPerSec1秒間当たりのリクエスト数
BusyWorkers忙しいプロセス数
IdleWorkers暇なプロセス数

次に b) Apacheの各プロセス単位での稼働状況・情報で表示される内容(項目)は
以下の通りです。
(無理矢理翻訳したから、ちょっと自信無いです、ハイ。)

SrvApache子プロセスの番号
PIDOS上でのプロセスID
Acc接続番号/子プロセス番号/スロット番号
Mプロセスの動作モード
CPUCPU使用率
SS直近のリクエストからの経過時間(秒)
Req直近のリクエストの所要時間(1/1000秒)
Conn該当の接続による転送量(KB)
Child子プロセスの累計データ転送量(MB)
Slotスロットの累計データ転送量(MB)
Clientアクセス元(ホスト名又はIPアドレス)
VHostアクセスされたバーチャルホスト名
Request処理されたApacheのリクエスト

※('A`)がちゃんと区別できていない処は「Child」と「Slot」の事です。
 ネットで調べても人によっては子プロセスの事を「スロット」と言ってたりします。
 また別の人はApacheの定義の「MaxRequestsPerChild でスロット数を指定する」
 なんて言ってたりします。
 この日記を書いた後でも、時間を見つけて調べてみます。。。

んで、2)で指定した場合のページを使って説明すると
Apacheの状態で特に注意して見るポイントとしては
1) 1秒あたりの平均リクエスト数、1リクエスト当たりの応答(返答)バイト数
.107 requests/sec - 109 B/second - 1024 B/request
(上記の例では 1秒あたり 0.107 回の平均リクエスト、1リクエストあたり 1024バイト)

2) 稼働中の子プロセス、空き状態の子プロセスの数
1 requests currently being processed, 31 idle workers
(上記の例では稼働中が1個、空き状態が31個)
後は「 _ 」とか「 . 」とか「W」とかで表示されているマップ情報も見ると良いでしょう。
(マップの記号1つが子プロセス1つに該当します。また表示される個数はhttpd.confで
「ServerLimit」で指定している数と同じです。)

ここで取り上げた情報とtopコマンドで確認できるサーバのメモリ消費量&Swap消費量を
元に、必要ならApacheのプロセスに関する設定(例えばServerLimitとかMaxClient、
Min/MaxSpareServersなど)を修正する事になります。
「必要なら」と断っているのは、サーバの状態というのは個々で違ってきますので、
必ずしもApacheの設定だけを変えても負荷が変わらない、なんて事があるからです。
(例えばCGIがいっぱい動いてそこでメモリが大量に消費されている、なんて場合には
CGIに対しての対応を考えた方が良いでしょう。)
判断が難しいのは、PHPスクリプトが動いている場合です。
パッと見ではApacheの子プロセスがいっぱい動いている or 子プロセスで使用されて
いるメモリ量が多いという形でtopコマンド上で見えるので、それがPHPのスクリプトで
負荷がかかっているのか、純粋に外部からのアクセスでApache本体が重くなってるのか
簡単には判断できないのです。
いずれにしても、サーバの負荷・稼働状況はツールやコマンドを使いながら、
できるだけ多角的に情報収集して分析・判断する事を心がけるのが大事です。


はー、これから引き続きmatdとの格闘です。明日はroot兄(・∀・)にも助太刀を
お願いしようかなあ・・・
それでは、また。

19日目に戻る。   21日目に続く。

1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
71日目 72日目 73日目 74日目 75日目 76日目 77日目
目次に戻る

いま一番お得なページ! 解析
Copyright (C) 1997-2008, big-server.com. All Rights Reserved. server@maido3.com
レンタルサーバー BIG-server.com
Powered By Maido3.com