Apache Benchmark + GNUPlot:Webサーバーのパフォーマンスを測定してグラフ化する

使用してもかまいません nginx, アパッチ、Lighttpdまたはその他、Webサーバーを持っているネットワーク管理者は、ある時点で、Webサーバーが特定の数のクエリに応答する速度を知りたいと思うでしょう。

マネージドサービス-サーバー-管理-e1368625038693

Apacheベンチマーク+ GNUPlot

今回はというツールを使用します Apacheベンチマーク、名前に「apache」が含まれていますが、Apacheのパフォーマンスを測定するためだけでなく、Nginxなどにも使用できます。 実際に、のパフォーマンスを測定するために使用します nginx.

また使用します GNUプロット、これは、数本の線で次のようなグラフを作成するのに役立ちます。

結果

ApacheBenchmarkとGNUPlotのインストール

Apache Benchmarkは、Apacheパッケージをインストールした後に使用できるツールです。GNUPlotは、同じ名前のパッケージをインストールした後に使用できるようになります。 それで ...

Debian、Ubuntuなどのディストリビューションの場合:

sudo apt-get install apache2 gnuplot

ArchLinuxまたは派生物のようなディストリビューション:

sudo pacman -S apache gnuplot

Apacheパッケージをインストールするだけで、起動したり、他の設定をしたりする必要はありません。インストールするだけで十分です。

Apacheベンチマークの使用

特定のサイトに、特定の数(100)を複数のグループ(20から20)で送信します。 結果を.csvファイル(result.csv)に保存し、GNUPloitで処理します。行は次のようになります。

ab -g resultados.csv -n 100 -c 20 http://nuestro-sitio-web.com/

測定するサイトのURLに最後の/を入れることは非常に重要です。

これは、ネットワーク上のサイトをテストしたときに表示される出力またはログです。

これはApacheBench、バージョン2.3です<$リビジョン:1638069 $> Copyright 1996 Adam Twiss、Zeus Technology Ltd、http://www.zeustech.net/ Licensed to the Apache Software Foundation、http://www.apache.org/ Benchmarking gutl.jovenclub.cu(辛抱強く).....完了

サーバーソフトウェア:nginxサーバーホスト名:gutl.jovenclub.cuサーバーポート:80

ドキュメントパス:/
ドキュメントの長さ:206バイト同時実行レベル:20テストにかかった時間:0.101秒完了したリクエスト:100失敗したリクエスト:27(接続:0、受信:0、長さ:27、例外:0)2xx以外の応答:73転送された合計: 1310933バイトのHTML転送:1288952バイト
993.24秒あたりのリクエスト数:XNUMX [#/秒](平均)
リクエストあたりの時間:20.136 [ms](平均)リクエストあたりの時間:1.007 [ms](平均、すべての同時リクエスト全体)転送速度:12715.49 [Kbytes / sec]受信接続時間(ms)最小平均[+/- sd]最大接続数の中央値:0 1 0.2 1 1処理:1 17 24.8 4 86待機中:1 15 21.5 4 76合計:1 18 24.8 5 87特定の時間内に処理された要求の割合(ミリ秒)50%5 66%6 75% 22 80%41 90%62 95%80 98%87 99%87
100%87(最長リクエスト)

私が最も重要だと思うものを赤でマークしました。それは多かれ少なかれ次のとおりです。

  1. テストしているサーバーのデータ、および問題のURL。
  2. XNUMX秒あたりのリクエスト数。
  3. 最も時間がかかった要求、つまり応答に最も時間がかかった要求にサーバーが応答するのに何ミリ秒かかりましたか。

この情報を使用して、サーバーがその数のリクエストに応答するのにかかる時間を把握し、より優れたキャッシュシステムを追加したり、使用していないモジュールを非アクティブ化したり、テストを再実行してパフォーマンスが向上したかどうかを確認したりできます。 。

連続した2つのテストの結果が同じになることはめったにないため、マージンのようなものを作成するために、テストを3〜XNUMX回実行することをお勧めします。

その他の便利なApacheベンチマークオプションまたはパラメータ:

-k -H'Accept-Encoding:gzip、deflate ' :このabを使用すると、サーバーが構成したキャッシュと圧縮を受け入れるため、時間が短縮されます。

-f URL.txt :したがって、サイトのインデックスをテストするだけでなく、そのファイルで指定したURLに対してテストを実行します。

とにかく...見てください 男ab あなたが見るために。

結果をグラフで表示します。

この出力を画像に、つまり、より視覚的な媒体に、そして何度も、マネージャーが理解できるのはそれだけです...これについては、前に述べたように使用します。 GNUプロット

結果.csvファイルがあるのと同じフォルダに(上記のコマンドで生成したことを覚えておいてください)gnuplot.pというファイルを作成します。

nano plot.p

その中に、以下を入れます:

set terminal png size 600 set output "results.png「タイトルを設定」100 リクエスト、 20 同時リクエスト「サイズ比を設定0.6グリッドを設定してxlabelを設定」リクエスト「ylabelを設定」応答時間(ミリ秒)"プロット"results.csv「行タイトル付きの9つのスムーズなsbezierを使用する」Gutl.jovenclub.cu"

私はあなたが常にチェックすべきことを赤で示しました。 つまり、上から下へ:

  1. 生成する画像ファイルの名前
  2. 合計および同時リクエストの数。
  3. 生成したファイルの名前。
  4. 私たちが取り組んでいるドメイン。

それを入れたら、保存して終了します(Ctrl + O その後 Ctrlキー+ X)、以下を実行します。

gnuplot plot.p

そして出来上がり、それは希望の名前でグラフを生成します、私のものは:

結果2

終わり!

Apache Benchmarkにはさらに多くのオプションがあり、パフォーマンステストをさらに完全にするために使用できる組み合わせも多数あります。

しかしねえ、これは基本です😉

お楽しみください!


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   フランシスコ

    興味深いapacheベンチマークですが、出力のスタイルを変更できることをgnuplotが知らなかったのは何ですか? 正式な報告についてです。

    チリからのご挨拶。

    1.    KZKG ^我愛羅

      はい、ネット上にはgnuplotの設定がたくさんあります。グーグルを検索して、それを使用するのに十分な真面目なものや専門的なものがないかどうかを確認してください。

  2.   Wolf119

    うーん、今実行している仮想apacheサーバーでテストして、GUTLに関して、80のリクエストから非常に高速に起動するので、これがどのように行われるかを確認します。100ミリ秒ではないことを確認しましょう。それらは何でもありませんが、10から70の80から80に比べて90のリクエストが多い高さは私の注意を呼びます

    1.    KZKG ^我愛羅

      同時に参加するキューまたはスレッドの最大数が原因である必要があります。 ただし、gzipなし、deflateなし、キャッシュなしなどでテストを行いました😉

  3.   チャーリー・ブラウン

    特にGNUPlotの使用に関しては非常に興味深い。 私が見たところ、ほとんどすべてのデータセットからグラフを生成するために使用できますよね?...

    1.    KZKG ^我愛羅

      はい、もちろん、コンマなどで区切られたファイルでデータを渡し、構成ファイルでデータを処理する方法を指示します。それだけです。

  4.   アドルフォ

    こんにちは、私はいつもこのブログを読むことに時間を費やしていますが、記事にコメントしたことは一度もないので、これは良い機会のようです。
    Apache Benchはシーケンシャル時間ではなくttime(合計時間)を使用して結果をソートするため、このタイプのグラフは誤って解釈される可能性があることを皆さんと共有したいと思います。 データはまだ真実ですが、グラフはおそらく私たちが望むものを示していません。
    これが私が読んだリンクです。
    http://www.bradlanders.com/2013/04/15/apache-bench-and-gnuplot-youre-probably-doing-it-wrong/

    ご挨拶。

  5.   ヒューゴー

    Apache Benchmarkは、複数のコアを備えたコンピューターのHTTPサーバーのパフォーマンスを測定するための最良のツールではありません。さらに、100の同時接続で20の要求のみが非常に弱いテストであり、より現実的なのは1,000の同時接続で10,000または100の要求です(既知です) Nginxは10,000秒あたりXNUMXを超えるリクエストを処理できるアプリケーションのXNUMXつです)。このためには、マルチコアコンピューター用に設計され、より高速なepollを使用するweighttpなどのツールを使用することをお勧めします。単一のスレッドと効率の低いイベント処理メカニズムを使用します。

    私の言いたいことは、サーバーに4つのコアしかないことを前提としています。

    weighttp -n 10000 -c 100 -t 4 -k "http://our-web-site.com/"

  6.   信仰

    みなさん、こんにちは、
    gnuplotを使用して(CSVから)グラフを描画すると、次のエラーが発生します。解決方法を教えてください。

    「Plot.p」、8行目:警告:有効なポイントがないデータファイルをスキップします

    «AB-localhost / web»というタイトルの9つの滑らかなsbezierを使用して«graph.csv»をプロットします。
    ^
    「Plot.p」、8行目:x範囲が無効です

    gnuplotを使用して、HTMLページも生成できますか?