Webサーバとデータベースサーバ各1台で構成されているシステムがある。
次の運用条件の場合,このシステムでは最大何TPS処理できるか。
ここで,各サーバのCPUは,1個とする。
〔運用条件〕
(1) トランザクションは,Webサーバを経由し,データベースサーバでSQLが実行される。
(2) Webサーバでは,1トランザクション当たり,CPU時間を1ミリ秒使用する。
(3) データベースサーバでは,1トランザクション当たり,データベースの10データブロックにアクセスするSQLが実行される。
1データブロックのアクセスに必要なデータベースサーバのCPU時間は,0.2ミリ秒である。
(4) CPU使用率の上限は,Webサーバが70%,データベースサーバが80%である。
(5) トランザクション処理は,CPU時間だけに依存し,Webサーバとデータベースサーバは互いに独立して処理を行うものとする。
正答1
解説
正解は1です。
この問題は、複数のサーバで構成されたシステムの最大処理能力を求めるものです。
TPS(Transactions Per Second)は1秒当たりに処理できるトランザクション数です。
各サーバの処理能力を求め、小さい方がシステム全体の上限になります。
【計算】
Webサーバは、1トランザクション当たりCPU時間1ミリ秒を使います。
CPU使用率の上限70%は、1秒当たり700ミリ秒使えるという意味です。
Webサーバの上限は、700÷1=700TPSです。
データベースサーバは、1トランザクション当たり0.2ミリ秒×10ブロック=2ミリ秒を使います。
CPU使用率の上限80%は、1秒当たり800ミリ秒です。
データベースサーバの上限は、800÷2=400TPSです。
システム全体は小さい方の400TPSに制約されます。
【選択肢別解説】
1:○ データベースサーバがボトルネックとなり、システム全体の最大は400TPSです。
2:× 500TPSは、データベースサーバをCPU使用率100%で使った場合の値です。
上限80%を考慮していません。
3:× 700TPSはWebサーバだけの上限です。
データベースサーバは400TPSしか処理できません。
4:× 1,100TPSは二つのサーバの上限を足した値です。
トランザクションは両方のサーバを通るので、足し算はできません。
【ポイント】
直列に処理が流れるシステムでは、最も処理能力の低い箇所(ボトルネック)が全体の性能を決めます。
CPU使用率の上限は「1秒のうち何ミリ秒使えるか」に換算すると計算しやすくなります。