レスポンスタイムとターンアラウンドタイムの違い
レスポンスタイムは
レスポンスタイムとターンアラウンドタイムの違い
検索ボタンを押してから画面に結果が出始めるまでがレスポンスタイムです。まとめて頼んだ仕事の結果が、最後まで手元にそろうまでがターンアラウンドタイムです。正確には、前者は入力の終わりから応答の始まりまで、後者はジョブの投入から出力の終わりまでの時間です。
どちらも、システムの性能を1件にかかる時間で表します。「システムが遅い」と言われたら、まずどちらの時間が長いのかを確かめます。時間あたりに何件こなせるかという見方もあり、こちらはスループットで表します。
レスポンスタイムとは
ネットショップで検索ボタンを押すと、少し待ってから結果の画面が出始めます。ボタンを押して入力を終えた時点から、画面に応答が出始めるまでの時間が、レスポンスタイムです。日本語では応答時間とも呼びます。
このように、利用者の操作にその場で応える処理を、オンライン処理と呼びます。オンライン処理の速さは、主にレスポンスタイムで測ります。
レスポンスタイムには、サーバの処理時間だけでなく、端末での処理と回線での伝送の時間も含まれます。ほかにかかる時間を無視すると、サーバの処理時間は、レスポンスタイムから端末処理時間と回線伝送時間を引いて求められます。回線の伝送時間の求め方は、伝送時間の計算の記事で説明しています。
ターンアラウンドタイムとは
月末に1か月分の売上をまとめて集計し、帳票を印刷する仕事を例にします。このように、データをためておき、まとめて処理する方式をバッチ処理と呼びます。バッチ処理で、コンピュータに頼む1回分の仕事をジョブと呼びます。
ターンアラウンドタイムは、ジョブを投入してから、結果の出力を受け取り終わるまでの時間です。ほかのジョブが終わるのを待つ時間や、データを読み込む入力の時間も含まれます。結果を印刷し終えるまでの出力の時間も、ターンアラウンドタイムに入ります。
バッチ処理の速さは、主にターンアラウンドタイムで測ります。利用者から見ると、仕事を頼んでから結果が手元にそろうまでの時間です。どの業務をバッチ処理にし、どの業務をその場で処理するかの選び方は、バッチ処理とリアルタイム処理の記事にまとめています。
2つの時間が数える範囲
1件の処理を時間の順に並べると、入力・待ち・処理・出力になります。2つの時間の違いは、この並びのどこからどこまでを数えるかです。
レスポンスタイムは、入力の終わりから出力の始まりまでなので、待ちと処理だけを数えます。ターンアラウンドタイムは、ジョブを投入する入力の始まりから、出力の終わりまでを数えます。そのため、同じ処理でも、ターンアラウンドタイムは入力と出力の時間の分だけ長くなります。
| 観点 | レスポンスタイム | ターンアラウンドタイム |
|---|---|---|
| 数え始め | 入力の | ジョブの |
| 数え | 出力の | 出力の |
| 主に | オンライン処理 | バッチ処理 |
| 入力と | 含まない | 含む |
システムのスループットとは
システムが単位時間あたりに処理できる仕事の量を、スループットと呼びます。1時間に処理できるジョブの数や、1秒に処理できる取引の数で表します。レスポンスタイムが1件の速さを表すのに対して、スループットはシステム全体がこなす量を表します。
ネットワークでも、1秒あたりに運べたデータ量をスループットと呼びます。こちらは単位がbpsで、ネットワークの性能指標の記事で帯域幅と比べています。ここで扱うスループットは、システムが処理する件数のほうです。
スループットを上げる工夫の1つに、スプーリングがあります。印刷する内容をいったん高速な補助記憶装置に書き出し、プリンタへは後から送る方法です。CPUは遅いプリンタを待たずに次のジョブへ進めるので、システム全体の処理量が増えます。
システムの処理能力を超える件数が届くと、処理を待つ列が伸びます。このとき、スループットは処理能力で頭打ちになり、1件ごとの待ち時間が長くなります。その結果、レスポンスタイムやターンアラウンドタイムも長くなります。
ターンアラウンドタイムとスループットの計算
3件のジョブA・B・Cを、0分にまとめて投入する例で計算します。同時に実行するジョブの数を多重度と呼び、ここでは多重度1で1件ずつ順に実行します。1件の実行時間はAが6分、Bが9分、Cが15分で、入力と出力の時間は考えません。
- Aは0分から実行し、6分に終わります。ターンアラウンドタイムは6分です
- BはAを待って6分から実行し、6+9=15分に終わります。ターンアラウンドタイムは15分です
- CはBを待って15分から実行し、15+15=30分に終わります。ターンアラウンドタイムは30分です
- 平均のターンアラウンドタイムは、(6+15+30)÷3=17分です
- 30分で3件を処理したので、スループットは3÷30=0.1件/分、1時間あたり6件です
次の図で、ジョブの数と実行時間と多重度を選ぶと、ジョブごとの待ちと実行の帯が出ます。ここでは、多重度を2にしても1件の実行時間は変わらないものとしています。
- ジョブ110分待たずに0分から10分まで実行。ターンアラウンドタイムは10分。
- ジョブ220分10分待ち、10分から20分まで実行。ターンアラウンドタイムは20分。
- 平均ターンアラウンドタイム
- 15分
- スループット
- 2件÷20分=1時間
あたり6件
- ジョブ110分待たずに0分から10分まで実行。ターンアラウンドタイムは10分。
- ジョブ210分待たずに0分から10分まで実行。ターンアラウンドタイムは10分。
- 平均ターンアラウンドタイム
- 10分
- スループット
- 2件÷10分=1時間
あたり12件
- ジョブ120分待たずに0分から20分まで実行。ターンアラウンドタイムは20分。
- ジョブ240分20分待ち、20分から40分まで実行。ターンアラウンドタイムは40分。
- 平均ターンアラウンドタイム
- 30分
- スループット
- 2件÷40分=1時間
あたり3件
- ジョブ120分待たずに0分から20分まで実行。ターンアラウンドタイムは20分。
- ジョブ220分待たずに0分から20分まで実行。ターンアラウンドタイムは20分。
- 平均ターンアラウンドタイム
- 20分
- スループット
- 2件÷20分=1時間
あたり6件
- ジョブ110分待たずに0分から10分まで実行。ターンアラウンドタイムは10分。
- ジョブ220分10分待ち、10分から20分まで実行。ターンアラウンドタイムは20分。
- ジョブ330分20分待ち、20分から30分まで実行。ターンアラウンドタイムは30分。
- ジョブ440分30分待ち、30分から40分まで実行。ターンアラウンドタイムは40分。
- 平均ターンアラウンドタイム
- 25分
- スループット
- 4件÷40分=1時間
あたり6件
- ジョブ110分待たずに0分から10分まで実行。ターンアラウンドタイムは10分。
- ジョブ210分待たずに0分から10分まで実行。ターンアラウンドタイムは10分。
- ジョブ320分10分待ち、10分から20分まで実行。ターンアラウンドタイムは20分。
- ジョブ420分10分待ち、10分から20分まで実行。ターンアラウンドタイムは20分。
- 平均ターンアラウンドタイム
- 15分
- スループット
- 4件÷20分=1時間
あたり12件
- ジョブ120分待たずに0分から20分まで実行。ターンアラウンドタイムは20分。
- ジョブ240分20分待ち、20分から40分まで実行。ターンアラウンドタイムは40分。
- ジョブ360分40分待ち、40分から60分まで実行。ターンアラウンドタイムは60分。
- ジョブ480分60分待ち、60分から80分まで実行。ターンアラウンドタイムは80分。
- 平均ターンアラウンドタイム
- 50分
- スループット
- 4件÷80分=1時間
あたり3件
- ジョブ120分待たずに0分から20分まで実行。ターンアラウンドタイムは20分。
- ジョブ220分待たずに0分から20分まで実行。ターンアラウンドタイムは20分。
- ジョブ340分20分待ち、20分から40分まで実行。ターンアラウンドタイムは40分。
- ジョブ440分20分待ち、20分から40分まで実行。ターンアラウンドタイムは40分。
- 平均ターンアラウンドタイム
- 30分
- スループット
- 4件÷40分=1時間
あたり6件
ジョブの数を2件から4件に増やすと、後ろのジョブの待ちが伸び、平均のターンアラウンドタイムは長くなります。一方、この図の条件では、スループットは1件の実行時間と多重度だけで決まり、ジョブの数を変えても同じです。多重度を2にすると、2件ずつ並んで進むので、スループットは2倍になります。
ベンチマークとモニタリング
複数のコンピュータの性能を比べるときは、同じプログラムを動かして処理の速さを測ります。目的に合わせて選んだ標準的なプログラムで性能を測る方法を、ベンチマークと呼びます。同じ物差しで測るので、製品どうしを公平に比べられます。
SPECintとSPECfpは、SPECという団体が作った、CPUの性能を測るベンチマークの指標です。SPECintは整数の演算、SPECfpは浮動小数点数の演算の性能を表します。SPEC CPUでは、整数と浮動小数点数のそれぞれに、処理時間で測るSPECspeedとスループットで測るSPECrateがあります。この分け方は、2017年版でも、後継の2026年版でも同じです。
TPCは、データベースの取引処理の性能を測るベンチマークを定める団体です。その1つのTPC-Cは、オンライントランザクション処理のベンチマークで、卸売業者の受注などの業務を題材にしています。オンライントランザクション処理とは、取引を回線越しに1件ずつ処理する形のことです。結果は、1分あたりに処理できたトランザクションの数で表します。
これに対して、運用中のシステムの稼働状態や資源の使い方を測り続ける方法を、モニタリングと呼びます。ベンチマークは導入前に性能を比べるとき、モニタリングは動いているシステムの性能を見張るときに使います。モニタリングで集めた値は、次の節のキャパシティプランニングの材料になります。
キャパシティプランニングとのつながり
求められるレスポンスタイムやスループットを満たすように、必要なサーバの性能や台数を見積もる作業があります。これをキャパシティプランニングと呼びます。動いているシステムに新しい業務を加えるときは、次の順に見積もります。
- モニタリングの結果から、いまのシステムの性能を把握する
- 処理件数や処理時間など、求められる要件を把握する
- サーバの台数などのシステム構成の案を考える
- 案が要件を満たすかを評価し、必要なら見直す
見積もった性能が足りないときに処理能力を増やす方法が、スケールアップとスケールアウトです。台数を増やした場合は、ロードバランサが要求を各サーバに振り分けます。止まらずに動き続けるかを表す信頼性の指標は、可用性とSLAの記事にあります。応答時間を目標と比べながら運用する方法は、SLA・SLO・SLIの記事で説明しています。
練習問題(全5問)
正解:利用者が
レスポンスタイムは、
解説記事:レスポンスタイムの
正解:スループット
単位時間
解説記事:スループットの
正解:10分
Aは
解説記事:計算例の
正解:ベンチマークは
ベンチマークは、
解説記事:ベンチマークの
正解:TPC-C
TPC-Cは、
解説記事:ベンチマークの
選んでから「採点する」を押すと、解説つきで答え合わせができます。
参考にした資料
- SPEC CPU 2017 Overview(SPECspeedとSPECrateの違い)
- SPEC CPU 2026(後継のスイートでも、SPECspeedとSPECrateの4つのスイートで構成されること)
- TPC-C(オンライントランザクション処理のベンチマークと、tpmCの単位)