令和6年秋期試験午後問題 問4
問4 システムアーキテクチャ
⇱問題PDF
データ処理機能の配置に関する次の記述を読んで,設問に答えよ。
データ処理機能の配置に関する次の記述を読んで,設問に答えよ。
広告
C社は,動画配信サービスを提供する会社であり,サービス内容が充実していることが人気を呼び,動画配信者数や動画視聴者数が増えている。動画配信者は,Webブラウザを用いて,ビデオカメラやスマートフォンで撮影した動画ファイルをC社のWebサイトにアップロードすると,Webサイト上で動画の編集・配信,広報,アクセス分析などの機能が利用できる。
C社の動画配信サービスは,C社配信システム部が企画から運用までを担当している。配信システム部では,サービス内容の向上を目的に,動画編集機能を強化した動画配信者向けの新しいサービスを提供するシステム(以下,新システムという)を構築することにした。新システムの構築は,配信システム部のD君が担当することになった。
〔新システムに必要な機能〕
D君は,現在の動画配信サービスの機能を基に,新システムに必要な動画配信者向け機能の機能要件を定義した。新システムに必要な機能一覧(抜粋)を表1に示す。![pm04_1.png](/kakomon/06_aki/img/pm04_1.png)
〔新システムのサーバ構成〕
D君は,新システムのサーバ構成を設計した。D君が設計した新システムのサーバ 構成(抜粋)を図1に示す。また,SSDとHDDのアクセス速度を表2に,LANとインターネットの通信速度を表3に,各サーバのCPUとGPUの搭載数を表4に示す。なお,新システム内の負荷分散装置,サーバ,NASはLANで接続されている。![pm04_2.png](/kakomon/06_aki/img/pm04_2.png)
各サーバで計算を行うCPUやGPUで実行される演算は,①整数演算と浮動小数点演算の二つに分類される。新システムで利用するCPUは,1コア当たり整数演算が10,000G Operations/秒(以下,OPSという),浮動小数点演算が500G Floating-point Operations/秒(以下,FLOPSという)で実行できる。また,GPUは1個当たり浮動小数点演算が10,000G FLOPSで実行できる。
この新システムを用いて,APサーバ1がAPサーバ1のSSDに格納された800Mバイトの動画ファイルをメモリに読み込む時間はa秒である。また,DBサーバのDBMSはRDBである。
〔配置の検討〕
D君は,新システムの各機能の中でデータ量や計算量が多い処理を抽出した。データ量や計算量が多い処理の一覧を表5に示す。なお,データ量には,各処理を実行するためにCPUやGPUにインプットされるデータ量と,CPUやGPUで計算した後にアウトプットされるデータ量とがある。
レンダリング処理は,APサーバのCPUを4コア用いて処理する場合にはb秒掛かり,GPUサーバのGPUだけを1個用いて処理する場合にはc秒掛かる。ただし,GPUサーバを用いて処理する場合には,APサーバからGPUサーバへデータを送信するのにd秒掛かり,APサーバヘレンダリング結果を返信するのにe秒掛かる。この検討結果から,APサーバよりもGPUサーバで処理した方がよい。
オンラインユーザ数取得処理について,D君は②DBサーバで処理した結果をAPサーバへ送信する方法が最適と考え,DBサーバで処理することにした。
素材送信処理は,同時に100名の動画配信者向けに素材データを送信しようとすると,LANの通信速度とHDDの読込速度が遅く送信に時間が掛かる。しかし,図1のサーバ構成の変更には大きな費用が掛かることから,サーバ構成を変更せずに対応する方法を検討した。動画配信者のPCへ送信する素材データは特定の素材データに偏っており,各素材データの更新頻度も高くないことから,表5の③素材送信処理の処理方法を変更して対応することにした。
〔動画配信者数増大への対応方針〕
D君は,将来的に動画配信者数が増大することを考慮して,新システムの拡張性について検討した。まず,表5のレンダリング処理は,動画データごとに処理が独立しており,GPUサーバを手動で追加するfの対応を行う方針にした。一方で,オンラインユーザ数取得処理は,時間とともに断続的に追記される動画の視聴ログをリアルタイムに集計する処理であり,DBサーバの数を増やせないことから,DBサーバをgして対応を行う方針にした。また,多次元分析処理は,④そこで扱うデータの特徴から,多次元分析処理専用のDBサーバを追加する方針にした。これによって多次元分析処理の負荷が他の処理へ影響しないようになる。
その後,D君は新システムの構築を完了させ,C社は新システムによる新しい動画配信者向けサービスの提供を開始した。
C社の動画配信サービスは,C社配信システム部が企画から運用までを担当している。配信システム部では,サービス内容の向上を目的に,動画編集機能を強化した動画配信者向けの新しいサービスを提供するシステム(以下,新システムという)を構築することにした。新システムの構築は,配信システム部のD君が担当することになった。
〔新システムに必要な機能〕
D君は,現在の動画配信サービスの機能を基に,新システムに必要な動画配信者向け機能の機能要件を定義した。新システムに必要な機能一覧(抜粋)を表1に示す。
![pm04_1.png](/kakomon/06_aki/img/pm04_1.png)
〔新システムのサーバ構成〕
D君は,新システムのサーバ構成を設計した。D君が設計した新システムのサーバ 構成(抜粋)を図1に示す。また,SSDとHDDのアクセス速度を表2に,LANとインターネットの通信速度を表3に,各サーバのCPUとGPUの搭載数を表4に示す。なお,新システム内の負荷分散装置,サーバ,NASはLANで接続されている。
![pm04_2.png](/kakomon/06_aki/img/pm04_2.png)
![pm04_3.png](/kakomon/06_aki/img/pm04_3.png)
この新システムを用いて,APサーバ1がAPサーバ1のSSDに格納された800Mバイトの動画ファイルをメモリに読み込む時間はa秒である。また,DBサーバのDBMSはRDBである。
〔配置の検討〕
D君は,新システムの各機能の中でデータ量や計算量が多い処理を抽出した。データ量や計算量が多い処理の一覧を表5に示す。なお,データ量には,各処理を実行するためにCPUやGPUにインプットされるデータ量と,CPUやGPUで計算した後にアウトプットされるデータ量とがある。
![pm04_4.png](/kakomon/06_aki/img/pm04_4.png)
オンラインユーザ数取得処理について,D君は②DBサーバで処理した結果をAPサーバへ送信する方法が最適と考え,DBサーバで処理することにした。
素材送信処理は,同時に100名の動画配信者向けに素材データを送信しようとすると,LANの通信速度とHDDの読込速度が遅く送信に時間が掛かる。しかし,図1のサーバ構成の変更には大きな費用が掛かることから,サーバ構成を変更せずに対応する方法を検討した。動画配信者のPCへ送信する素材データは特定の素材データに偏っており,各素材データの更新頻度も高くないことから,表5の③素材送信処理の処理方法を変更して対応することにした。
〔動画配信者数増大への対応方針〕
D君は,将来的に動画配信者数が増大することを考慮して,新システムの拡張性について検討した。まず,表5のレンダリング処理は,動画データごとに処理が独立しており,GPUサーバを手動で追加するfの対応を行う方針にした。一方で,オンラインユーザ数取得処理は,時間とともに断続的に追記される動画の視聴ログをリアルタイムに集計する処理であり,DBサーバの数を増やせないことから,DBサーバをgして対応を行う方針にした。また,多次元分析処理は,④そこで扱うデータの特徴から,多次元分析処理専用のDBサーバを追加する方針にした。これによって多次元分析処理の負荷が他の処理へ影響しないようになる。
その後,D君は新システムの構築を完了させ,C社は新システムによる新しい動画配信者向けサービスの提供を開始した。
広告
設問1
〔新システムのサーバ構成〕について答えよ。
- 本文中の下線①について,整数演算に該当する演算を解答群の中から全て選び,記号で答えよ。
- 本文中のaに入れる適切な数値を答えよ。ここで,本文に記載の読込速度,書込速度を実効速度とし,他のオーバヘッドは無視できるものとする。なお,計算結果に小数が発生する場合,答えは小数第2位を四捨五入して小数第1位まで求めよ。
解答群
- 300+200-100
- 300×200÷100
- 3.00+2.00-0.10
- -300+(-200)-(-100)
- 300×0
- 3.00×0
解答例・解答の要点
- ア,イ,エ,オ
- a:1.6
解説
- 整数演算は整数型(int型)のデータを対象にした演算、浮動小数点演算は浮動小数点数型(float型)を対象にした演算です。
整数演算で扱える数値は、正の整数、0、負の整数に限られます。項又は結果に小数を含む演算は、たとえ小数点以下が0であったとしても整数演算には該当しません。したがって小数が使用されている「ウ」「カ」が浮動小数点演算、それ以外が整数演算に該当します。よって、解答は「ア、イ、エ、オ」の4つです。
なお「イ」のような除算は、結果を小数で得るときは浮動小数点演算、商と剰余を整数で得るときは整数演算となります。本問では「300×200÷100=6」と結果が整数なので、整数演算に分類されます。
∴ア,イ,エ,オ - 〔aについて〕
SSD内のデータを読み込む時間は「データ量÷読込速度」で計算することができます。表2よりSSDの読込速度は500Mバイト/秒とわかるので、800Mバイトの動画ファイルをメモリに読み込む時間は、
800M[バイト]÷500M[バイト/秒]=1.6[秒]
割り切れる計算であるため四捨五入の必要はありません。
∴a=1.6
広告
設問2
〔配置の検討〕について答えよ。ここで,図1のサーバ構成を一つの処理が占有でき,〔新システムのサーバ構成〕と表5に記載以外のオーバヘッドや並列処理に伴うオーバヘッドは無視できるものとする。
解答例・解答の要点
- b:50
c:10
d:4
- e:0.8
- アウトプットデータと比較してインプットデータの量が多いから (29文字)
- 素材データをAPサーバのSSDにキャッシュする (23文字)
解説
- 〔bについて〕
レンダリング処理に必要な計算量は、表5より100,000GFLOとわかります。CPU1コアあたりの浮動小数点演算性能は500GFLO/秒であり、これを4コア用いて処理するため、レンダリング処理に掛かる時間は、
100,000[GFLO]÷(500[GFLO/秒]×4)=50[秒]
∴b=50
〔cについて〕
レンダリング処理をGPU1個を使用して処理することを考えます。GPU1個あたりの浮動小数点演算性能は10,000GFLO/秒であるので、GPUを用いた場合の処理時間は、
100,000[GFLO]÷10,000[GFLO/秒]=10[秒]
∴c=10
〔dについて〕
GPUで処理を行う場合、レンダリングに必要な動画データをAPサーバからGPUサーバに転送し、GPUサーバで処理後APサーバに結果を返す必要があります。APサーバからGPUサーバに転送されるのはインプットのデータです。
表5より処理に必要なインプットのデータ量は500Mバイト、表3よりLANの通信速度が1Gbpsとわかります。転送時間は「転送データ量÷転送速度」で求めるため、APサーバからGPUサーバに500Mバイトのインプットデータを送信する時間は以下のように計算できます。計算ではそれぞれの単位がバイトとビットで異なることに注意します。
1Gbps/秒=125Mバイト/秒
500M[バイト]÷125M[バイト/秒]=4[秒]
∴d=4 - 〔eについて〕
GPUサーバからAPサーバに転送されるのはアウトプットのデータです。表5より処理後のアウトプットのデータ量は100Mバイトとわかるため、先程と同様の計算で、
1Gbps/秒=125Mバイト/秒
100M[バイト]÷125M[バイト/秒]=0.8[秒]
∴e=0.8 - 新システムのサーバ構成を見ると、オンラインユーザ数取得処理はCPUを搭載するAPサーバ、DBサーバ、又はGPUサーバで処理することが可能です。DBサーバとGPUサーバ間は直接LANが接続されていないこと、より負荷のかかる浮動小数点演算が0であることから、GPUで処理するメリットはなく候補から除外できます。そうなると、APサーバまたはDBサーバのいずれかで処理を行うことになります。
「データ量の観点」という設問の指示があるので表5でデータ量を比較すると、インプットが100Mバイト、アウトプットが0.1Mバイトとで1,000倍の差があることがわかります。APサーバで処理を行う場合、DBサーバからAPサーバに100Mのインプットデータを送信する必要があるのに対して、DBサーバで処理を行う場合はAPサーバに0.1Mのアウトプットデータを送信すれば済みます。どちらで処理してもCPU処理時間は変わらないので、転送時間が短くて済むDBサーバでの処理が適切と判断できます。
以上を踏まえると、DBサーバでの処理を選択した理由を「データ量の観点」の観点から説明すれば、次のような解答が適切となります。- アウトプットデータと比較してインプットデータの量が多いから
- インプットデータ量よりもアウトプットデータ量が少ないから
- データ量が少ないアウトプットデータを転送したほうが効率的だから
- 素材データはNAS(Network Attached Storage)のHDDから読み込みAPサーバへ送信され、その後、APサーバからインターネットに送出されます。この転送処理には次の処理を通じて行われます。上図を見るとわかるように、LANの通信速度(250M)とHDD読込時間(250M)がボトルネックとなっていることがわかります。ボトルネックを解消するためには両方の速度を改善する必要がありますが、下線⑤の前には「表5の」とあるため、素材送信の処理方法の観点から変更点を解答する必要があります。
問題文には素材データの特性として「動画配信者へ送信するデータは特定の素材データに偏っており,各素材データの更新頻度も高くない」と記述されています。このように同じデータが何度も参照され、また置換えなどの管理コストが小さくて済む場合、キャッシュの利用が効果的です。素材データを都度NASのHDDから読み込みAPサーバへ送信するのではなく、利用頻度の高い素材データをAPサーバの記憶装置SSDに置いておけば、少なくともHDD読込速度のボトルネックについては改善が見込まれます。
∴素材データをAPサーバのSSDにキャッシュする
広告
設問3
〔動画配信者数増大への対応方針〕について答えよ。
- 本文中のf,gに入れる適切な字句を解答群の中から選び,記号で答えよ。
- 本文中の下線④について,オンラインユーザ数取得処理と対比して,多次元分析処理で扱うデータの特徴を20字以内で答えよ。
f,g に関する解答群
- スケールアウト
- スケールアップ
- スケールイン
- スケールダウン
解答例・解答の要点
- f:ア
g:イ
- 追加・更新のない過去のデータ (14文字)
解説
- 将来的な重要を予測し、その特性に合わせてシステム性能を最適化する方法を検討します。選択肢の手法はいずれもシステムを構成するサーバ資源を最適化する方法です。
- スケールアウト
- システムを構成する物理サーバの台数を増やすことにより、システムとしての処理能力や可用性を高める方法。水平スケールとも呼ばれる
- スケールアップ
- 処理能力の高いCPUへの交換、メモリやストレージの増強など、個々のサーバの性能を向上させることにより、システムとしての処理能力を高める方法。垂直スケールとも呼ばれる
- スケールイン
- システムを構成する物理サーバ台数を減らすことにより、システムのリソースを最適化し、無駄なコストを削減する方法
- スケールダウン
- 処理能力の低いCPUへの交換やメモリ容量の削減など、個々のサーバの処理能力を抑えることにより、システムのリソースを最適化し、無駄なコストを削減する方法
〔fについて〕
新システムの拡張について問題文に「動画データごとに処理が独立しており」と表記されているので、レンダリングの並列処理が可能であることがわかります。また「GPUサーバを手動で追加する」の表記もあることから、該当する拡張方法はスケールアウトとなります。したがって空欄fには「ア:スケールアウト」が当てはまります。
∴f=ア:スケールアウト
〔gについて〕
オンラインユーザ数取得処理は、断続的に追記される視聴ログをリアルタイムに集計する処理であり常に追加・更新されていくデータであること、また「DBサーバの数を増やせない」と問題文にあることからスケールアップによって対応することがわかります。したがって空欄gには「イ:スケールアップ」が当てはまります。
∴g=イ:スケールアップ - 表5より、多次元分析処理で用いられるデータとオンラインユーザ数取得処理で用いられるデータの特徴は次のとおりです。
- オンラインユーザ数取得処理
- リアルタイムに集計されるオンラインユーザ数
インプット100M、アウトプット0.1M - 多次元分析処理
- 前日までに確定された視聴ログ
インプット50,000M、アウトプット1M
∴追加・更新のない過去のデータ
広告
![模範解答](/kakomon/06_aki/img/pm04_result.png)
広告