lecture:apro:2019:ex5

  1. 自分の計算機上で httpサーバプログラム httpServer.py(または httpThreadServer.py)を実行し、Apache Bench を用いて実行したサーバの処理能力を以下の条件に従って計測しなさい。
    1. 同時接続数: 5
    2. 1接続あたりのリクエスト:20
    3. 接続先ホスト:localhost
    4. 接続先ポート:任意
    5. リクエストするリソース名: /server.html
  2. 計測するサーバプログラムは、httpServer.py を修正したもの(httpServer2.py や httpThreadServer2.py など)でも構いません。
  1. 自分の計算機上で httpサーバプログラム httpServer.py(または httpThreadServer.py)を実行し、Apache Bench の同時接続数(-c オプション)のみを変化させたときのサーバの処理能力の変化を計測しなさい。
  2. サーバの計測は以下の条件に従いなさい。
    1. 同時接続数: 1〜10
    2. 総リクエスト数:100
    3. 接続先ホスト:localhost
    4. 接続先ポート:任意
    5. リクエストするリソース名: 任意
  3. 計測するサーバプログラムは、課題に応じて httpServer.py を修正したもの(httpServer2.py や httpThreadServer2.py など)でも構いません。
  4. httpサーバに対して、次の2つの値を同時接続数ごとに計測し、計測結果をグラフにまとめなさい。
    1. 1接続あたりの処理時間:Time per request(mean)
    2. (接続数を加味しない)1リクエストあたりの処理時間:Time per request(mean, across all concurrent requests)
  5. 作成するグラフは、表計算ソフト(MS エクセル, LibreOffice Calc, Googleスプレッドシート、など)やグラフ描画ソフト(Gnuplot, Python matplotlibライブラリ(教科書 12章)、など)を利用し、横軸を同時接続数、縦軸を処理時間(msec)とた以下のようなグラフとする。
  6. Apache Bench による計測結果のグラフTAに示し(グラフの画像ファイルなどをTeamsチャットで送信し)、そのグラフとグラフから読み取れる結果をTAに説明しなさい。

httpThreadServer.py の同時接続数を変化させたときの応答時間: 紫:1接続あたりの応答時間(msec)、緑:1リクエストあたりの応答時間(msec)

/roes/sample/sano/apro/abtest_ex5-2.sh にこの計測実験のためのシェルスクリプトのサンプルがあります。このシェルスクリプトは使っても(使わなくても)構いません。 シェルスクリプトは、
$ bash abtest_ex5-2.sh

のようにして利用(実行)できます。

  1. 講義中に示した「テストケース1(ex5スライド9ページ)」、または「テストケース2(ex5スライド11ページ)」(あるいは両方)の条件にしたがって Apache Bench による httpサーバの反応時間を計測し、結果をグラフにまとめなさい。
/roes/sample/sano/apro/abtest.sh に実験のためのシェルスクリプトのサンプルがあります。
  • lecture/apro/2019/ex5.txt
  • 最終更新: 2019/12/17 10:17
  • by sano