第 4 章 最大クライアント数の自動設定 23
4.2 最大クライアント数の分析
4.2.3 サーバ資源と応答時間
サーバのどのリソースがボトルネックとなっても多くの場合,応答時間のばらつ きが発生し,標準偏差に影響を与える.これを確認するため,簡単な実験を行った.
1台のPCを使用し,そのPC上でボトルネックを意図的に発生させるような単 純なプログラムを実行し,スループットと応答時間を測定した.この実験では,(a) CPU がボトルネックとなる場合,(b) メモリがボトルネックとなる場合,(c) ディ スクがボトルネックとなる場合の3つで実験を行っている.CPUがボトルネック となる場合には,フィボナッチ数を計算するプロセスを生成し,プロセス数を変 化させながら,その影響を見る.メモリがボトルネックとなる場合には,それぞ れのプロセスがページサイズである4KBごとに決められた定数を書き込む.ディ スクがボトルネックとなる場合には,ファイルをランダムに選択し,ファイルの 内容を読み込む.OSのキャッシュ上からデータを取得しないように,多数のファ イルを用意する.プロセスを多数生成することによるCPUやメモリへの影響を避 けるため,単一プロセスで非同期I/Oを利用してディスクにアクセスするように した.実験に使用したPCは,2章のサーバで使用したものと同一のものを使用し ている.
実験結果を図4.3,4.4,4.5に示す.それぞれの場合について,スループットと 応答時間を示している.応答時間では,平均値と標準偏差をプロットしている.
図 4.3から,どの場合にもPCが過負荷となると応答時間の標準偏差が大きく なっていることがわかる.CPUがボトルネックとなる場合には,100プロセスあ たりから応答時間の平均が増加するとともに,応答時間の標準偏差も増加する.メ モリがボトルネックとなる場合も,100プロセスあたりから応答時間の標準偏差が 大幅に増加している.ディスクがボトルネックとなる場合には,スループットが 低下を始める100同時リクエストあたりから,応答時間の標準偏差が大きくなっ ている.
0 50 100 150 200 250 300
1 10 100 1000
スループット [要求/s]
同時要求プロセス数
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
1 10 100 1000
応答時間 [ms]
同時要求プロセス数 平均
標準偏差
図 4.3: サーバ資源と応答時間(CPU)
0 20 40 60 80 100 120 140 160 180 200
1 10 100 1000
スループット [1000要求/s]
同時要求プロセス数
0 100 200 300 400 500 600
1 10 100 1000
応答時間 [ms]
同時要求プロセス数 平均
標準偏差
図 4.4: サーバ資源と応答時間(メモリ)
0 2000 4000 6000 8000 10000 12000 14000 16000 18000
1 10 100 1000
スループット [要求/s]
同時リクエスト数
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
1 10 100 1000
応答時間 [ms]
同時リクエスト数 標準偏差平均
図 4.5: サーバ資源と応答時間(ディスク)
経過時間
標準偏差
180秒 prev
(前回設定完了時点の 推定標準偏差)
sd_reg
(現在の推定標準偏差)
現在時刻 前回設定完了時刻
本機構は回帰直線から推定標準偏差を計算する.
回帰直線は時間経過とともに移動する.
推定標準偏差が許容範囲を超えると 最大クライアント数の設定を開始する.
回帰直線 許容範囲
(prev +/- threshold)
図 4.6: ワークロードの変化の検出