平成22年秋期試験午後問題 問4
問4 システムアーキテクチャ
⇱問題PDF
Webシステムの性能評価に関する次の記述を読んで,設問1~3に答えよ。
Webシステムの性能評価に関する次の記述を読んで,設問1~3に答えよ。
広告
P社は,社内業務システム(以下,本システムという)を開発中である。本システムは,社内にあるクライアントからのリクエストを受信すると,リクエストに応じた処理を行い,処理結果をリクエスト元のクライアントに返すWebシステムである。その際,必要に応じてデータベースサーバ(以下,DBサーバという)にアクセスする。システム構成を図に示す。 クライアントからのリクエストは,Webサーバ上のリクエストキューにいったん入れられ,そこから業務スレッドに渡されて処理が行われる。Webサーバの設定で業務スレッド数を指定することができ,業務スレッドが複数存在する場合は,並行して処理が行われる。本システムの性能要件は,最大スループットが60件/秒で,そのときの平均応答時間が0.5秒以内である。
Webサーバの必要台数を,次の手順で決定することにした。
Webサーバ1台,DBサーバ,テスト用クライアントの構成で,テスト用クライアント上の負荷テストツールから,Webサーバへリクエストを送信して,処理時間を計測する。処理時間は,リクエストが業務スレッドに渡された時点から,業務スレッドが処理結果をテスト用クライアントに返す直前までを計測する。Webサーバの設定で,業務スレッド数を1から順に増加させて,最適値を求める。このとき,業務スレッドがアイドル状態にならないように,負荷テストツールから十分な数のリクエストを送信する。
計測結果を表1に示す。この結果から,Webサーバ1台当たりの業務スレッド数の最適値は4で,そのときの平均処理時間は0.2秒であることが分かった。〔待ち行列理論による算出〕
計測結果から,Webサーバの業務スレッド数を4に設定することにした。この状態は,サービス窓口が四つの待ち行列モデルに相当し,M/M/4モデルを用いて解析できる。窓口数が4で,平均処理時間を1に正規化した場合の窓口利用率と平均待ち時間の関係を表2に示す。
ここで,窓口利用率=平均到着率×平均処理時間/窓口数とする。 ネットワーク上の転送時間は無視し,DBサーバでの処理時間は平均処理時間に含まれるものとして,Webサーバが1台,スループットが18件/秒の場合を考える。このとき,平均到着率は18件/秒,平均処理時間は0.2秒,窓口数は4なので,窓口利用率はaとなる。表2から,窓口利用率がaで,平均処理時間が1の場合の平均待ち時間はbであるので,平均処理時間が0.2秒の場合の平均待ち時間はc秒となり,平均応答時間はd秒となる。
次に,本システムの性能要件を満たす,Webサーバの最小必要台数を考える。
本システムのロードバランサは,システム全体での平均到着率をλとすると,Webサーバがn台の場合1台当たりの平均到着率がλ/nとなるようにリクエストをWebサーバに振り分ける。ロードバランサのオーバーヘッドは無視するものとする。
本システムの最大スループットは60件/秒であるので,Webサーバがe台の場合,Webサーバ1台当たりの平均到着率はf件/秒となる。そして,窓口利用率はgで,平均応答時間はh秒となり,性能要件である平均応答時間0.5秒以内を満たしている。
Webサーバの必要台数を,次の手順で決定することにした。
- プロトタイププログラムを作成して負荷テストを実施し,リクエスト1件当たりの平均処理時間と,Webサーバ1台当たりの業務スレッド数の最適値を求める。
- ①の結果と待ち行列理論を用いて,Webサーバの必要台数を算出する。
Webサーバ1台,DBサーバ,テスト用クライアントの構成で,テスト用クライアント上の負荷テストツールから,Webサーバへリクエストを送信して,処理時間を計測する。処理時間は,リクエストが業務スレッドに渡された時点から,業務スレッドが処理結果をテスト用クライアントに返す直前までを計測する。Webサーバの設定で,業務スレッド数を1から順に増加させて,最適値を求める。このとき,業務スレッドがアイドル状態にならないように,負荷テストツールから十分な数のリクエストを送信する。
計測結果を表1に示す。この結果から,Webサーバ1台当たりの業務スレッド数の最適値は4で,そのときの平均処理時間は0.2秒であることが分かった。〔待ち行列理論による算出〕
計測結果から,Webサーバの業務スレッド数を4に設定することにした。この状態は,サービス窓口が四つの待ち行列モデルに相当し,M/M/4モデルを用いて解析できる。窓口数が4で,平均処理時間を1に正規化した場合の窓口利用率と平均待ち時間の関係を表2に示す。
ここで,窓口利用率=平均到着率×平均処理時間/窓口数とする。 ネットワーク上の転送時間は無視し,DBサーバでの処理時間は平均処理時間に含まれるものとして,Webサーバが1台,スループットが18件/秒の場合を考える。このとき,平均到着率は18件/秒,平均処理時間は0.2秒,窓口数は4なので,窓口利用率はaとなる。表2から,窓口利用率がaで,平均処理時間が1の場合の平均待ち時間はbであるので,平均処理時間が0.2秒の場合の平均待ち時間はc秒となり,平均応答時間はd秒となる。
次に,本システムの性能要件を満たす,Webサーバの最小必要台数を考える。
本システムのロードバランサは,システム全体での平均到着率をλとすると,Webサーバがn台の場合1台当たりの平均到着率がλ/nとなるようにリクエストをWebサーバに振り分ける。ロードバランサのオーバーヘッドは無視するものとする。
本システムの最大スループットは60件/秒であるので,Webサーバがe台の場合,Webサーバ1台当たりの平均到着率はf件/秒となる。そして,窓口利用率はgで,平均応答時間はh秒となり,性能要件である平均応答時間0.5秒以内を満たしている。
広告
設問1
本文中のa~dに入れる適切な数値を答えよ。答えは,小数第3位を四捨五入して小数第2位まで求めよ。
解答例・解答の要点
a:0.90
b:1.97
c:0.39
d:0.59
b:1.97
c:0.39
d:0.59
解説
次のような条件下で窓口利用率、平均待ち時間、平均待ち時間、平均応答時間を求める問題です。- Webサーバ:1台
- スループット:18件/秒
- 平均到着率:18件/秒
- 平均処理時間:0.2秒
- 窓口数:4
問題文中に「窓口利用率=平均到着率×平均処理時間/窓口数」という式が与えられているため、前提の数字を代入して計算すると、
窓口利用率=18×0.2/4=0.9
∴a=0.9
〔bについて〕
M/M/4モデルにおいて、窓口利用率が0.9、平均処理時間が1のときの平均待ち時間は、表2より「1.969」であることがわかります。小数点第3位を四捨五入して解答するので「1.97」が正解となります。
∴b=1.97
〔cについて〕
待ち行列モデルにおいて、平均待ち時間(待ち行列に並んでからサービス開始までの時間)は「平均滞留数※×平均処理時間」で求めるので、平均処理時間が短ければその分だけ平均待ち時間も短くなります(※平均滞留数=ρ/(1-ρ)、ρ=利用率)。
平均処理時間が1であるときの平均待ち時間は1.969なので、平均処理時間が0.2秒の場合の平均待ち時間は「1.969×0.2=0.3938秒」となります。小数第3位を四捨五入すると「0.39」です。
∴c=0.39
〔dについて〕
平均応答時間は「平均待ち時間+平均処理時間」、すなわち待った時間とサービスを受けた時間の合計です。[c]より平均待ち時間は0.39秒、平均処理時間は0.2秒なので、平均応答時間は2つを合計した「0.39+0.2=0.59秒」です。
∴d=0.59
広告
設問2
本文中のeに入れる最小の整数を答えよ。
また,そのときf~hに入れる適切な数値を答えよ。答えは,小数第3位を四捨五入して小数第2位まで求めよ。
また,そのときf~hに入れる適切な数値を答えよ。答えは,小数第3位を四捨五入して小数第2位まで求めよ。
解答例・解答の要点
e:4
f:15.00
g:0.75
h:0.30
f:15.00
g:0.75
h:0.30
解説
〔e~hについて〕次のような条件下のWebサーバの最小必要台数を考えます。
- 最大スループットは60件/秒
- 平均応答時間は0.5秒以内
Webサーバが4台のときを計算してみると、窓口利用率は、
15×0.2/4=0.75
表2より、窓口利用率の平均処理時間を1に正規化した場合の平均待ち時間は0.509となるため、平均待ち時間は、
0.509×0.2=0.1018秒
平均応答時間は、平均処理時間との合計で
0.1018秒+0.2秒=0.3018秒
(小数第3位を四捨五入して)0.30秒
平均応答時間0.5秒以内を満たしているので、Webサーバが4台あれば十分であることがわかります。
以上をまとめると、[e]のWebサーバの台数は「4台」、[f]の平均到着率は「60件÷4台=15.00件/秒」、[g]の窓口利用率は「15×0.2/4=0.75」、[h]の平均応答時間は「0.1018秒+0.2秒≒0.30秒」となります。
∴e=4
f=15.00
g=0.75
h=0.30
広告
設問3
表1のプロトタイプでの計測結果から,業務スレッド数を5又は6にした際に,Webサーバでどのような現象が発生していると推測できるか。その現象名を解答群の中から選び,記号で答えよ。また,このWebサーバにどのような改善を施せば,その現象が発生しなくなるかを10字以内で述べよ。
現象 に関する解答群
- ガーベジコレクション
- スイッチング
- スラッシング
- フラグメンテーション
- メモリリーク
解答例・解答の要点
現象:ウ
改善策:メモリを増設する (8文字)
改善策:メモリを増設する (8文字)
解説
〔現象について〕表1のプロトタイプで業務スレッド数を5又は6にした際のWebサーバの計測結果を確認すると、次のような変化がわかります。
- メモリ使用率が100%
- 業務スレッド数が4と比較すると、OS以外のCPU使用率が減少している。
- 業務スレッド数が4と比較すると、ディスク入出力が増加している。
〔改善策について〕
スラッシングはメモリ不足により発生するので、メモリを増設することが改善策となります。メモリ容量が増えると次のような改善が見込まれます。
- メモリの使用率が減る。
- メモリの使用率が減ることによってページングが発生しなくなる。
- ページングが発生しなくなることで、OSのオーバーヘッド(余計な処理)が減少する。
改善策=メモリを増設する
現象に関する解答群について、一つずつみていきます。
- ガーベジコレクションは、プログラムによる使用済のメモリ領域を自動的に解放する機能のことです。
- スイッチングは、ネットワーク分野であれば受信したデータの宛先アドレスを見て、適切なポートに転送する機能のこと。OSのタスク管理であればCPUが処理するプロセスを切り替えることです。
- 正しい。
- フラグメンテーションは、主記憶やハードディスクのような記憶装置において不連続な未使用領域が生じる現象、またはその領域のことです。
- メモリリークは、プログラム上で確保したメモリが使用後も解放されずに主記憶上に残っている状態のことです。
広告
広告