ホームページ >バックエンド開発 >PHPチュートリアル >高性能 PHP 学習ベンチマーク テクノロジ

高性能 PHP 学習ベンチマーク テクノロジ

WBOY
WBOYオリジナル
2016-06-13 11:57:501015ブラウズ

高性能 PHP 学習 - ベンチマーク テスト テクノロジー

1. ベンチマーク テスト ツール

ベンチマーク テスト ツールは、さまざまな Simulate 統計で提供されます。ユーザーリクエストが発生したときのWebサーバーの応答について。これにより、Web サーバー上の特定の Web ドキュメントをリクエストする任意の数のユーザーをシミュレートできるようになります。さらに重要なことに、Web サーバー上のドキュメントに同時にアクセスする任意の数のユーザー (同時リクエスト) をシミュレートできるようになります。

たとえば、各ツールによって提供される情報は以下に関連します:
1. リクエストへの応答に費やされた合計時間
2. サーバーからの合計応答サイズ
3. Web サーバーが 1 秒あたりに処理できるリクエストの合計数

2. Apache Benchmark
ここでは、Apache Benchmark (ab/ab2) ツールを紹介します。
これは、デフォルトの Apache インストールの一部である最も有名なベンチマーク ツールの 1 つであり、特定の URL に対する任意の数のリクエストをシミュレートすることで Web サーバーの負荷テストを行うことができます。 ab ツールは次の情報を提供します。
1. 転送された合計データ サイズ (バイト単位)
2. シミュレートされたトラフィックの下で Web サーバーがサポートできる合計リクエストの数
3. リクエストの完了にかかる最長時間 (ミリ秒)
4. リクエストの完了にかかる最短時間 (ミリ秒) ) (ミリ秒単位)
注: ab コマンドは ubuntu オペレーティング システムで実行され、作成者は opensuse を使用します。したがって、作成者は ab2 を使用します。 ab2コマンドですが、書き込むときは便宜上必ずabコマンドを書きます。


ab ツールを使用すると、次のようなさまざまな負荷シミュレーションを実行することもできます。
1. Web ドキュメントのリクエストのシミュレート
2. 指定された時間内のリクエスト
3. Keep-Alive がオンになっている場合のリクエスト
最も重要なことは、Apache ベンチマークです。は Web サーバーの Apache から独立しているため、このツールを実行している
コンピューター上で非アクティブなときに ab を実行できます。


3. Apache Benchmark をインストールします
Linux/Unix システムでは、Apache がインストールされている限り使用できます。注文したものを取り付けました。

ユーザーは Windows で http://httpd.apache.org/ を開くことができます。このページが読み込まれたら、ページの左側にある [ミラーからダウンロード] リンクをクリックし、お使いのシステムに適切なダウンロード パッケージ (Windows 32 バイナリ バージョン) を見つけてダウンロードします。
パッケージがダウンロードされたら、インストール ウィザードを実行してシステム上の任意の場所にソフトウェアをインストールできます。 Apache をデフォルトの場所 C:Program FilesApache Software Foundation にインストールしましたが、システム上のどこにでもインストールできます。ここで選択した場所は、APACHE_HOME 参照によって指定された場所です。
次に、Apache2.2bin を開きます。以下に示すように、ファイルとディレクトリのコレクションが表示されるはずです。

4. ab コマンドを使用します
では、ab ツールを使用してみましょう。 (ベンチマーク テストでは www.example.com を例にします)
すべての ab コマンドの構成は次の構造に従います:
ab [オプション] [フルパスWeb ドキュメント]
例:
ab -n 1 http://www.example.com/
n は行くことを意味します指定された URL に対して実行されたリクエストの数。この例では、ab は Web ドキュメントを 1 回だけリクエストしますが、n の値は 50,000 未満の任意の数値にすることができます。デフォルトでは、n は 1 に設定されます。
コマンドの次の部分は URL 部分です。実行したばかりのコマンドの URL は http://www.example.com/ です。 test.php (存在しません) など、このドメイン内のドキュメントをテストすることを選択した場合、URL は次のようになります: http://www.example.com/test.php
Execute上記のコマンドの結果は以下のようになります。



URLhttp ab 応答 ://www.example.com上の図のデータは 4 つの部分に分かれています
1. サーバー情報
Web サーバー上で実行されているソフトウェア、ホスト名、およびサーバーがリッスンするポート番号。

2. スクリプト情報
シミュレーションを実行する Web ドキュメントに関する情報が含まれます。ドキュメント パスには要求されたドキュメントが含まれ、ドキュメント長には、応答内のすべての HTML、画像、CSS、JS、その他のバイトの合計が含まれます。

3. 接続情報
情報の本体が含まれます。これは、「リクエストに対する応答を受け取るまでにどれくらい時間がかかりますか?」、「返されるデータの量はどれくらいですか?」などの情報に答えます。そして最も重要なのは、「ドキュメントの処理中に Web サーバーがサポートできるユーザーの数は何人ですか?」にも答えます。
以下の表に、データのこの部分の完全なリストと説明を示します。 ab 応答 説明


4. 接続インジケーターの内訳

最後の部分には、Connect、Processing、Waiting、および Total フィールドを含むテーブルが含まれています。これらのフィールドは、リクエストが各プロセス状態で費やした時間を示します。私たちが最も関心があるのは、合計フィールドとその最大値と最小値の列です。


>

ab オプションタグ

上記のタグを使用していくつかのテストを実行してみましょう


1. 同時実行テスト

は同時実行テストをシミュレートし、Web に対して 10 個の同時リクエストを行いますリクエストの位置が 100 に達するまで、同時にサーバーにアクセスします。 c タグを使用する場合の注意点の 1 つは、実行されるリクエストの総数 n 以下の値を使用することです。
例: ab -n 100 -c 10 http://www.example.com

ab コマンドの応答は次のとおりです

🎜 >

>シミュレートされた同時リクエストでは、「1 秒あたりのリクエスト」フィールドが表示され、Web サーバーが 1 秒あたりのリクエスト (ユーザー) をサポートできることがわかります。接続メトリックの合計最小列と最大列を分析すると、同時リクエスト 10 件の特定のトラフィック負荷の下で、最速の応答は 371 ミリ秒で、最も遅いリクエストでは 575 ミリ秒かかったことがわかります。
ただし、トラフィックは 1、2、3 秒間だけ続くわけではなく、トラフィックが多い場合は数分、数時間、場合によっては数日続く場合もあります。これをテストするためにシミュレーションを実行してみましょう。


2. タイムテスト
t タグでいつでも Web サーバーの実行を確認できます。
以下では、次のコマンドを使用して、20 秒以内に 10 人のユーザーが Web サイトに同時にアクセスすることをシミュレートします:
ab -c 10 -t 20 http:// www .example.com/
注: このコマンドには n タグが含まれていませんが、デフォルトで含まれており、 t オプションを使用する場合、ab はその値を 50000 に設定します。場合によっては、 t オプションを使用すると、リクエストの最大数が 50,000 に達し、その時点でシミュレーションが終了することがあります。

ab コマンドの応答は以下のとおりです






www.example.com/ のベンチマーク結果 (20 秒で 10 人の同時ユーザー)

このシミュレーションの結果は、10 人の同時ユーザーが 20 秒間に Web ドキュメントをリクエストするとパフォーマンスが低下することを示しています。最も速く処理されたリクエストには 464 ミリ秒かかりましたが、最も遅いリクエストには 1890 ミリ秒かかりました。


5. ab トラップ
ab を使用する場合、いくつかの警告があります。
1. 上記で実行されたコマンドを見ると、ドメイン名の末尾にバックスラッシュがあることがわかります。このドメイン内の特定のドキュメントを要求しない場合は、このバックスラッシュが必要です。
2. ab は、Web サーバーに渡すユーザー エージェント値が原因で一部の Web サーバーによってブロックされる場合もあるため、その場合はデータが受信されない可能性があります。この問題を回避するには、使用可能なオプション フラグ -H の 1 つを使用して、リクエストにカスタム ブラウザー ヘッダー情報を提供します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。