Apacheサーバーの負荷を決定します

画像



Apache Webサーバーの操作に関するデータを取得し、分析に便利な形式で表示する方法。



データを取得することから始めましょう。



これを行うには、mod_statusモジュールを接続する必要があります。 サーバーを監視し、通常のHTMLページの形式でデータを表示します。 その助けを借りて、あなたは見つけることができます:





要求を処理する1つのプロセス数。

2待機しているプロセスの数。

3各プロセスの状態、プロセスによって処理されたリクエストの数、および送信されたデータ。

4リクエストと送信データの総数。

5サーバーの稼働時間(起動、再起動、および合計稼働時間);

6一般統計:1秒あたりのリクエストの平均数、1リクエストあたりのバイト数、1秒あたりのバイト数。

各プロセスごとの7 CPU使用率と現時点でのApache

現在処理中の8つのホストとその要求。



設定に移りましょう



1モジュールを接続します。

これを行うには、httpd.confファイルの行からコメントを削除します

LoadModule status_module modules/mod_status.so









2そして、統計へのオープンアクセス。 次の行をhttpd.confに追加します

#

ExtendedStatus On



<Location /server-status>

SetHandler server-status



Order Deny,Allow

Deny from all

Allow from 127.0.0.1











ご注意 ここでは、アドレス127.0.0.1(localhost)のみの統計へのアクセスを許可しました。 リモートサーバーをテストするには、この設定を変更する必要があります。



3)Apacheを再起動します。



これで、統計を表示できます。



これを行うには、ブラウザにURLを入力します

localhost/server-status









または、ページを自動的に更新する場合



localhost/server-status?refresh=15









(15番の代わりに、遅延を秒単位で設定します)。



同じデータを持つページの別のバージョンがあります。



localhost/server-status?auto&refresh=3









ご覧のとおり、データは取得しましたが、標準ページを見て分析することはあまり便利ではありません。



たとえば、スクリーンショットはApacheプロセスのステータスを示しています。



画像



下線はプロセスが接続を待機していることを意味し、文字「W」は応答を送信することを意味し、ドットはプロセスのない空きスロットを意味します。



ご注意 スクリーンショットは地方北部で撮影されたため、リクエストを送信するプロセスは統計ページを形成するプロセスのみです。



さらに、データが絶えず更新されている場合(更新パラメーターが使用されている場合)、変更を視覚的に評価することは非常に困難です。



この場合、データを収集して、たとえばグラフの形式で表示するスクリプトを使用すると便利です。



このように自分で書くこともできますが、既製のものを使用する方が簡単です。



このようなスクリプトの例として、 Apacheサーバーステータスの視覚化(LGPLライセンスで配布 )を検討してください。



スクリプトは3つの部分で構成されています。



1つの構成ファイル(inc.config.php)。 ここで、統計情報を含むページのアドレスを指定する必要があります。

$statusurl = "http://localhost/server-status";









データの更新時間とスケール(プロットに使用)。

$refreshtime = 2;

$scalefaktor = 1;









2 2つのスクリプト(serverstatus.phpおよびserverstatus2.php)。 データの表示に使用されます。 どれでも実行できます。 情報は同じですが、異なる方法でのみ表示されます。



serverstatus.php



画像



serverstatus2.php



画像



3)統計ページを分析するクラス(class.parse_server_status.php)。 最も興味深いコンポーネント;)。 独自のスクリプトで使用できます。



作業時には、このクラスの2つのメソッドが必要です。



1 parse_server_status($ url)-パラメーター$ urlで、統計情報を含むページのアドレスを設定します。



2 getActiveConnections()-アクティブな接続に関する情報を含む配列を返します。 現時点では、この配列にはプロセス識別子、動作モード、プロセス実行時間、CPU使用率、仮想ホスト名、リクエストURIが含まれています。



したがって、サーバーに関するデータを保存する独自のスクリプトを記述することは難しくありません。



頑張って



All Articles