2011/05/03

バースティング性能 その4 (Performance of the bursting function. Part 4)

並列度と性能の関連について検証を続けます。

前回、2ファイルへの出力を行った際には2つのCPUコアの使用率が高まり、処理時間が短縮されました。今回は出力するファイルの数を増やして検証します。


【定義】
前回と同様、pagenoを基にファイルを分割します。3ファイルに出力する場合は trunc(pageno/3334)、4ファイルの場合は trunc(pageno/25001)という様にファイル分割のキーを算出します。

【結果】
結果は以下の通りです。縦軸が処理時間、横軸はファイル数です。
処理時間はファイル数の増加に従って短くなり、約50秒で頭打ちとなります。コア数は6ですが、4ファイル(スレッド)の段階で頭打ちとなっています。これは、6コアを割り当てているとは言ってもホストマシンのCPUに搭載されている物理コアが4つであることに起因している可能性があります。
Figure 1: Number of Files and Elapsed Time

 
サンプル数が少ないのが難点ですが、おおむね赤の点線で示したトレンドを確認することができます。


実績値は以下の通りです。秒間200ページほどの性能となります。この性能であれば、他の帳票生成ツールと比較しても高速な部類に入ります。
ファイル数#
所要時間(秒)秒間出力ページ数
3ファイル
1回目
53.6186.7

2回目
54.0
185.3
3回目
53.9
185.7
4ファイル
1回目49.3202.9

2回目48.4206.5

3回目49.0
204.3
5ファイル
1回目52.5190.4

2回目50.5198.0

3回目51.7193.3
6ファイル
1回目56.6
176.7

2回目55.6179.9

3回目56.1
178.3
7ファイル
1回目52.6190.2

2回目51.5194.3

3回目51.4194.4
10ファイル
1回目45.9217.7

2回目44.5224.7

3回目52.8
189.4


【検証時のOSの挙動】
並列度を上げた場合の負荷はCPUに集中します。
ここでは6ファイルの検証時のOS統計を確認します。

CPU:
処理中盤のピーク時、6つのコアすべての使用率が高まっていることが確認できます。
Figure 2: CPU usage

プロセッサ・キュー(System\Processor Queue Length)の状態もほぼ問題ありません。
Figure 3: Processor Queue Length


メモリ:
メモリの状態にも大きな問題はありません。
Figure 4: Memory usage



ディスク:
ディスクは余裕のある状態です。
Figure 5: Disk usage


※チューニングについては後ほど検討します。


開発効率や信頼性の向上など、BI Publisherに限らず有償の商用ソフトウェアを採用する意義は様々ですが、今回の検証の様に、負荷に対するスケーラビリティがソフトウエア側で一定レベル保証されているという点も重要です。

今回で性能検証の前座は終了です。次回は本丸である「1ファイル1ページ」のバースティングを検証します。
※少数のファイルに多量のデータをバースティングする、という例がそもそもあまりよくありませんでしたが、前座ですのでご了承ください。


[Summary]

When the parallelism increase, how does it affect the processing performance?




[Results]
As shown in Figure 1, the elapsed time decreases as the number of thread increases.  Since the CPU of the host machine has four physical cores, four threads seems the performance ceiling.
The best performance is recorded as 200 pages per second - sounds nice anyway.  We will consider further tuning later.


[OS statistics]
CPU gets higher workload as parallelism grows.


CPU
All cores are near 100% (Figure 2).  Figure 3 shows Processor Queue wait 


Memory
No problem(Figure 4)


Disk
No problem(Figure 5)




Finally, this is the end of the appetizer.  Next time is the main dish - it is one page per one file .

0 件のコメント:

コメントを投稿