残念ながら、BI Publisher 11g での検証は、VM上での検証が不調に終わったため、都合により、BI Publisher 10gでの検証結果を記載します。
【検証環境】
検証環境のBIサーバ構成を以下の通り変更します。
ゲストマシン2(BIEE):CPU: 4コア
Memory: 4GB
OS: Windows2003 Server, 32bit
BIEE: Oracle BIEE 10g
BI Publisher10gでは、マルチスレッド処理の設定を手動で行う必要があります。今回はコア数と同じ4スレッドでの実行を設定します。
Figure 1: Runtime property setting |
【結果】
出力結果は以下の通りです。出力に3分以上かかる結果となってしまいました。
所要時間(秒) | 秒間出力ページ数 | |
1回目 | 199.7 | 50.0 |
2回目 | 180.5 | 55.4 |
3回目 | 201.9 | 49.5 |
平均 | 194.0 | 51.7 |
平均で秒間約51ページの出力性能となりました。
【OS統計】
OS統計からは、ディスクおよびメモリに問題は見られません。
CPU使用率を確認すると、個々のコアの使用率が低く、かつ、断続的に落ち込んでいる状況が確認できます。
CPU:
バッチ処理としては、CPUリソースの能力を引き出せていません。全体で6割程度の使用率です。
Figure 2: CPU usage |
メモリ:
メモリには余裕がある状態です。
Figure 3: Memory |
ディスク:
ディスクアクセスにも問題はありません。
Figure 4: Disk time |
【JVMのチューニング】
OS統計からは明確なボトルネック情報は得られませんが、CPUの動きからはGCが疑われます。
同時間帯のGCの様子を確認します。
Figure 5: Garbage Collection status (default setting) |
Full GC (黒線)が多発しています。物理メモリにはまだ余裕がありますので、GCの間隔を広げるため、ヒープの絶対量を増やします。
最大サイズ(Xmx)を1GBに指定し、また、バッチ単体用途処理ですので、初期サイズ(Xms)も1GBに合わせます。併せて、パラレルGC (XX:+UseParallelGC)を設定します。参考まで、以下に追加・変更する設定を示します。
-Xmx1024M -Xms1024M -XX:+UseParallelGC
【再実行結果】
出力結果は以下の通りです。平均で約1分20秒、秒間約120ページの出力性能となりました。
所要時間(秒) | 秒間出力ページ数 | |
1回目 | 82.3 | 121.5 |
2回目 | 82.3 | 121.5 |
3回目 | 84.0 | 118.9 |
平均 | 82.9 | 120.7 |
今回はこれ以上のJVMの調査・チューニングは行いません。
Figure 6: Garbage Collection (Heap=1GB) |
【OS統計】
CPU使用率が回復していることが確認できます。
CPU:
おおむね100%に近い使用率となっています。バッチ処理として、リソースの性能を引き出すことができています。
Figure 7: CPU usage |
メモリ:
JVMにメモリを割り当てた分、空き容量は減少していますが問題はありません。
Figure 8: Memory |
ディスク:
ディスクは余裕のある状態です。
Figure 9: Disk Time |
1ファイルに1万ページをまとめて出力した場合のファイルサイズは19MBでしたが、1ページ1ファイル(本来のバースティング)の出力では、出力されるファイルの総サイズが458MB(1ファイルあたり46KB)に増加します。
PDFファイルを個別に出力する際のオーバーヘッドを勘案すると、ある程度妥当な性能と言えます。
これまで見てきたように、BI Publisher のバースティング機能はCPU性能に依存しますので、機器構成の検討の際にはインフラ担当者と密に連携し、性能検証を十分に実施することをお勧めします。
[Summary]
Now it's one page in each file.
Since BI Publisher 11g on my VM did not get good result, this time, I use BI Publisher 10g. I may try 11g again in near future.
With BI Publisher 10g, you need to specify some parameters to implement multi thread bursting. Figure 1 shows the setting. Please refer the manual:
http://download.oracle.com/docs/cd/E10415_01/doc/bi.1013/e12187/T518230T522345.htm
[Result]
The result are as follows... Not good. It took three minutes over.
Elapsed Time(sec) | pages / sec | |
1st | 199.7 | 50.0 |
2nd | 180.5 | 55.4 |
3rd | 201.9 | 49.5 |
Average | 194.0 | 51.7 |
OS statistics shows no bottleneck on memory nor disk (Figure 3 and 4). You may see the CPU usage stays low (Figure 2).
[JVM Tuning]
BI Publisher runs on JVM, you should check the Garbage Collection behavior. Figure 5 tells there had been too many Full GC.
The memory can afford more JVM heap. Below is new setting:
-Xmx1024M -Xms1024M -XX:+UseParallelGC
[Result (with JVM heap size 1GB)]
It gets better. The average is 120 pages per second.
Elapsed Time(sec) | pages / sec | |
1st | 82.3 | 121.5 |
2nd | 82.3 | 121.5 |
3rd | 84.0 | 118.9 |
Average | 82.9 | 120.7 |
Figure 6 shows that the Full GC has been vanished. You can see the Throughput in GC Viewer increased from 79.32% to 95.93%. It means the pause time in JVM had been reduced a lot.
[OS statistics]
CPU usage gets higher. It's around 98% (Figure 7). This means BI Publisher uses the CPU resource effectively.
The memory and the disk stay calm (Figure 8 and 9).
The PDF file size is 46KB each, total 458MB (46KB * 10,000 files = 458MB). In Part 1, the file size was 18.8MB. The file size increased more than 20 times.
With consideration of the overheads (overhead when BI Publisher produces 10,000 individual PDF files), I accept this result.
The bursting function of BI Publisher is CPU-bound. You should better to communicate with the infrastructure team to discuss the server spec. The performance test should be done with them before they determine the spec, if possible.
0 件のコメント:
コメントを投稿