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