平成24年秋期試験午後問題 問4
問4 システムアーキテクチャ
⇱問題PDF
データ分析処理の並列化に関する次の記述を読んで,設問1~3に答えよ。
データ分析処理の並列化に関する次の記述を読んで,設問1~3に答えよ。
広告
K社は,様々な商品の売行きを調査し分析した結果を,顧客企業に提供している。K社で使用しているアプリケーションプログラムの全体の流れを図1に示す。変換処理には変換サーバを,分析処理には分析サーバを用いている。変換処理の結果は,ファイル転送処理によって,変換サーバから分析サーバにファイル転送される。
最近では,分析対象となるデータの種類や量が増加するだけでなく,分析結果をより短時間で提供することが求められている。そこでK社では,処理時間を大幅に短縮する方策を検討することにした。〔変換処理プログラムの改良〕
変換処理は,分析処理がしやすいように入力ファイルを加工する処理であり,入力ファイルごとに異なるレコードフォーマットやコードを統一する。変換処理のステップを図2に示す。
変換処理の時間を短縮するために,プログラムの改良を実施した。改良前の各ステップの処理時間の比率は,フォーマット変換処理が20%,コード変換処理が30%であった。プログラムの改良によって,フォーマット変換処理の時間は1/4に,コード変換処理の時間は1/3に短縮された。その他の処理のプログラムは変更せず,処理時間の短縮もない。これによって変換処理はa倍の性能向上が達成された。〔分析処理の並列化〕
分析処理は,変換処理が出力した結果ファイルを基に,顧客に合わせた分析レポートを出力する。従来は,1台のサーバで全ての処理を逐次実行してきた。処理1件当たりの処理時間は,顧客からの処理要件や,データの種類や量によってその都度異なるが,最短で1時間,最長で3時間である。
分析処理の時間を短縮するために,分析サーバを3台用意し,処理を並行して実行することにした。ただし,各分析サーバに割り当てられた処理は逐次実行し,1件の処理を複数のサーバに分散して実行することはない。複数の処理を1台のサーバで並行実行することもない。
3台の分析サーバに処理を割り当てる方法として,方法Aと方法Bを考えた。
分析処理全体の処理時間の短縮を考え,方法Bを採用した。
〔システム構成の検討〕
システム構成案として,分析処理のデータの入出力方法が異なる構成案1と構成案2を考え,ファイル転送処理と分析処理における特徴について考察した。
分析処理において,構成案1の場合,分析に必要なデータは個々の分析サーバの内蔵ディスクにあるので,分析サーバが増えてもdはボトルネックにならない。一方,構成案2の場合,データはファイルサーバにあるので,分析サーバが増えた場合は,dだけでなくeについても,ボトルネックにならないか考慮する必要がある。
ある分析サーバに障害が起きたときは,別の分析サーバが処理を引き継ぐ。その際の処理時間の遅延は無視できるとした場合,構成案2におけるシステム全体の稼働率は,変換サーバ及び各分析サーバの稼働率を x,ファイルサーバの稼働率を y としたとき,fと表すことができる。ファイルサーバの稼働率がシステムの稼働率に大きく影響するので,②可用性向上のために対策を施す必要がある。
最近では,分析対象となるデータの種類や量が増加するだけでなく,分析結果をより短時間で提供することが求められている。そこでK社では,処理時間を大幅に短縮する方策を検討することにした。〔変換処理プログラムの改良〕
変換処理は,分析処理がしやすいように入力ファイルを加工する処理であり,入力ファイルごとに異なるレコードフォーマットやコードを統一する。変換処理のステップを図2に示す。
変換処理の時間を短縮するために,プログラムの改良を実施した。改良前の各ステップの処理時間の比率は,フォーマット変換処理が20%,コード変換処理が30%であった。プログラムの改良によって,フォーマット変換処理の時間は1/4に,コード変換処理の時間は1/3に短縮された。その他の処理のプログラムは変更せず,処理時間の短縮もない。これによって変換処理はa倍の性能向上が達成された。〔分析処理の並列化〕
分析処理は,変換処理が出力した結果ファイルを基に,顧客に合わせた分析レポートを出力する。従来は,1台のサーバで全ての処理を逐次実行してきた。処理1件当たりの処理時間は,顧客からの処理要件や,データの種類や量によってその都度異なるが,最短で1時間,最長で3時間である。
分析処理の時間を短縮するために,分析サーバを3台用意し,処理を並行して実行することにした。ただし,各分析サーバに割り当てられた処理は逐次実行し,1件の処理を複数のサーバに分散して実行することはない。複数の処理を1台のサーバで並行実行することもない。
3台の分析サーバに処理を割り当てる方法として,方法Aと方法Bを考えた。
- 方法A
各分析サーバで実行する件数が均等になるように処理を割り振る(図3)。 - 方法B
分析サーバ間の処理時間のばらつきが小さくなるように,bした分析サーバに,順次,次の処理を割り当てる(図4)。
分析処理全体の処理時間の短縮を考え,方法Bを採用した。
〔システム構成の検討〕
システム構成案として,分析処理のデータの入出力方法が異なる構成案1と構成案2を考え,ファイル転送処理と分析処理における特徴について考察した。
- 構成案1
個々の分析サーバがもつ内蔵ディスクでデータの入出力を行う(図5)。 - 構成案2
どの分析サーバからもアクセスできるファイルサーバでデータの入出力を行う(図6)。
分析処理において,構成案1の場合,分析に必要なデータは個々の分析サーバの内蔵ディスクにあるので,分析サーバが増えてもdはボトルネックにならない。一方,構成案2の場合,データはファイルサーバにあるので,分析サーバが増えた場合は,dだけでなくeについても,ボトルネックにならないか考慮する必要がある。
ある分析サーバに障害が起きたときは,別の分析サーバが処理を引き継ぐ。その際の処理時間の遅延は無視できるとした場合,構成案2におけるシステム全体の稼働率は,変換サーバ及び各分析サーバの稼働率を x,ファイルサーバの稼働率を y としたとき,fと表すことができる。ファイルサーバの稼働率がシステムの稼働率に大きく影響するので,②可用性向上のために対策を施す必要がある。
広告
設問1
本文中のaに入れる適切な数値を答えよ。答えは,小数第2位を切り捨てて,小数第1位まで求めよ。
解答例・解答の要点
a:1.5
解説
〔aについて〕変換処理プログラムのうち、20%の部分の処理時間が1/4に、30%の部分の処理時間が1/3になっています。
- 20%の部分が1/4になった → 全体の15%削減
- 30%の部分が1/3になった → 全体の20%削減
100÷65=1.538…倍
(小数第2位を切り捨てて)1.5倍
∴a=1.5
広告
設問2
〔分析処理の並列化〕について,(1)~(3)に答えよ。
- 本文中の下線①について,15件の分析処理を行う場合,分析サーバごとの処理時間の差は最大で何時間になるか。数値を答えよ。
- 本文中のbに入れる適切な字句を10字以内で答えよ。
- 本文中のcに入れる適切な数値を答えよ。
解答例・解答の要点
- 10
- b:分析処理が終了 (7文字)
- c:3
解説
- 分析処理1件当たりの処理時間は、最短で1時間、最長で3時間です。図3を見るとわかるように、方法Aでは15件の処理を各サーバに対し、以下のようにラウンドロビン的(順繰り)に分析処理を割り当てます。
- 分析サーバ1 … 処理1、処理4、処理7、処理10、処理13
- 分析サーバ2 … 処理2、処理5、処理8、処理11、処理14
- 分析サーバ3 … 処理3、処理6、処理9、処理12、処理15
∴10 - 〔bについて〕
図4を見ると、方法Aと比較して、処理3の後に処理4が割り当てられている点、処理2の後に処理5が割り当てられている点が異なっています。この処理の順番の推移より、分析処理が終了した分析サーバから、順次、次の処理を割り当てる制御をしていることがわかります。
∴b=分析処理が終了 - 〔cについて〕
方法Bにおいて、所要時間が3時間である最後の処理を1つを残した状態で、タイミングよく分析サーバ3つ全てが同時に前の処理を完了したとします。1つのサーバに最後の処理を割り当てると、その3時間だけ他のサーバより長く動くことになります。これが、方法Bにおける処理時間の差が最も大きくなるケースです。
∴c=3
広告
設問3
〔システム構成の検討〕について,(1)~(3)に答えよ。
- 本文中のd,eに入れる適切な字句を解答群の中から選び,記号で答えよ。
- 本文中のfに入れる適切な式を答えよ。ここで,ネットワークの稼働率は1とする。
(※正誤判定の都合上、指数部を"^"で入力してください。Rの2乗→R^2) - 本文中の下線②について,ファイルサーバの稼働率を高めるための対策として適切なものを,解答群の中から全て選び,記号で答えよ。
d,e に関する解答群
- ネットワークの帯域
- ファイルサーバのディスクの入出力
- 分析サーバのCPU処理能力
- 分析サーバの内蔵ディスクからの読込み
- 変換サーバの内蔵ディスクへの書込み
(3) に関する解答群
- ファイルサーバのディスクコントローラー装置を二重化する。
- ファイルサーバのディスクを,よりシークタイムが短いものに交換する。
- ファイルサーバのディスクをRAID0で構成する。
- ファイルサーバのディスクをRAID1で構成する。
- ファイルサーバのディスクをRAID6で構成する。
解答例・解答の要点
- d:ア
e:イ
- f:x(1-(1-x)3)y
- ア,エ,オ
解説
- 〔dについて〕
本文中の[d]に関する記述をまとめると、以下のように整理できます。- 構成案1のファイル転送処理でボトルネックになり得る
- 構成案2のファイル転送処理ではボトルネックにならない
- 構成案1の分析処理ではボトルネックにならない
- 構成案2の分析処理でボトルネックになり得る
一方、「構成案2の場合,変換処理の結果は,ファイルサーバにだけファイル転送」するので、ファイル転送処理におけるネットワーク負荷は分析サーバの台数が増えても一定です。しかし、分析処理ではファイルサーバから各分析サーバへのファイル転送が生じるので、分析サーバが増えるほど転送量が増加することになります。
したがって[d]には「ア」の"ネットワークの帯域"が妥当します。他の選択肢が不適切な理由は以下のとおりです。- 正しい。
- 構成案1においてファイルサーバが存在せずボトルネットとなり得ないため誤りです。
- 構成案1と2の分析サーバは同じ台数で同じCPU処理を行うため、構成による差は出ません。よって誤りです。
- 構成案2では分析サーバの内蔵ディスクが存在しないので、ボトルネックになり得ません。よって誤りです。
- ファイル転送処理では変換サーバの内蔵ディスクへの書込みを行わないため誤りです。
〔eについて〕
空欄には、構成案2の分析処理においてボトルネックとなり得る項目が当てはまります。
構成案2の分析処理では、ファイルサーバ上のデータに各分析サーバがアクセスします。ファイルサーバの数が1つのままで、増加する分析サーバが全て1つのファイルサーバにアクセスするシステム構成では、分析処理におけるファイルサーバの負担が大きくなり、これがボトルネックになります。
したがって、[e]には「イ」の"ファイルサーバのディスクの入出力"が妥当します。他の選択肢が不適切な理由は以下のとおりです。- [d]の答えに当てはまるので誤りです。
- 正しい。
- 構成案1と2の分析サーバは同じ台数で同じCPU処理を行うため、構成による差は出ません。よって誤りです。
- 構成案2では分析サーバの内蔵ディスクが存在しないので、ボトルネックになり得ません。よって誤りです。
- 分析処理では変換サーバの内蔵ディスクへの書込みを行わないため誤りです。
- 〔fについて〕
「ある分析サーバに障害が起きたときは,別の分析サーバが処理を引き継ぐ」ので、複数ある分析サーバのうち1つでも稼働していれば、システム全体としては稼働状態にあります。一方、変換サーバとファイルサーバは冗長化されていません。変換サーバとファイルサーバはそれぞれ1台ずつ、分析サーバは3台のうち1台稼働すればよいので、このシステム構成を図で表すと以下のようになります。分析サーバ3台のグループの部分の稼働率は 1-(1-x)3 です。稼働率xの機器、稼働率1-(1-x)3の部分、稼働率yの機器が直列で接続されていると考えると、全体としての稼働率は「x(1-(1-x)3)y」で表すことができます。
∴f=x(1-(1-x)3)y - ファイルサーバの可用性を向上させる施策を選択します。
- 正しい。ディスクコントローラー装置はディスクへのアクセスを制御するハードウェアです。ディスクコントローラー装置が壊れたらアウトですから、二重化することにより可用性は向上します。
- シークタイムとは、ディスクアクセスの際に磁気ヘッドを目的のトラックに移動させるための時間です。シークタイムが短いとディスクの読み書きが速くなりますが、可用性とは無関係です。
- RAID0(ストライピング)は、データを複数のディスクに分散して書込み、並列アクセスすることで読み書きを高速化する構成です。冗長データをもたないので信頼性を向上させる技術ではありません。複数のディスクのうち1つでも壊れたらアウトなので、可用性はむしろ低下します。
- 正しい。RAID1(ミラーリング)は、2つのディスクに同じデータを書き込みます。ディスク1つが壊れても別のディスクが生きていればセーフなので、可用性は向上します。
- 正しい。RAID6は2種類の異なるパリティを異なるディスクに配置するダブルパリティにより、最大で2台のディスク障害に耐えられる構成です。よって、可用性は向上します。
広告
広告