ogino's blog
Archives
« 11月 2009
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
     
       
Today
Click me to subscribe
Search

Links
 

Today's Page Hits: 56

« v2.1 German web page... | Main | Performance Advisor... »
木曜日 2 12, 2009
GlassFish Enterprise Manager - Performance Advisor

Sun GlassFish Portfolio が発表されました。いろんな情報があります。

情報が盛り沢山なのですが、私からは GlassFish v2.1 への付加機能としてサブスクライバのみに提供されるものの 1 つ、Enterprise Manager を何回かにわけてご紹介していこうと思います。Enterprise Manager には現時点で、以下のパッケージがあります。

今回は Performance Advisor についていくつか試したので報告します。これ、どんなものかというと、管理コンソールへの追加機能で、大きく下記 2 つの機能を持ちます。

1 つめは、CPU, メモリなどサーバのリソース、GC の方針などいくつかの変数を指定すると、それに合わせた GlassFish の推奨設定を提示してくれる、というものです。提示されたものに関しては、それを見ながら自分で設定するもよし、もしくは全て受け入れるのであれば、そのままツールに設定させてしまうこともできます。このような調整はアプリケーションによる部分が大きいのであくまでも目安、参考に使う、というものですが、何もないのと何かあるのでは大違い、結構便利ではないでしょうか。

2 つめは GlassFish に以前から備わっていた MBean自己管理機能をベースに提供される機能で、以前だと自分で MBean を書かないといけなかったような、リソースの使用状況などをモニタし、あるしきい値を超えた際に警告をメールする、というようなことが Performance Advisor を使うことで簡単に実現できます。

なお、注意点として、この Performance Advisor は有償サブスクリプションを購入頂いているお客様へ提供されるものです。SunSolve からパッチ 140751 としてダウンロードできます。

今回は、静的にサーバ設定値を提示してくれる「チューナー」の機能を試してみました。以下の画面でいくつか値を入力、選択したりして「次へ」と進むとそれをベースとした設定変更の確認画面になります。

perfAdvisor_configTuner1

まずはデフォルトで数値が入っている 1 CPU コア、1 GB メモリなどをそのまま使って推奨される変更を見てみました。

perfAdvisor_configTuner2_1core_1gb

このスクリーンショット、クリックすれば大きいのが見れるのですが、手間ですので、一応表にします。主に下記のような推奨値を出してきます。これらをこのまま設定する場合は画面右上の「確認」をクリックしそのまま設定に進むこともできますし、全部は受け入れない、という場合には手動での変更のやり方がそれぞれの項目に書いてありますのでそれに従って自分で設定します。

1 コア、1024 MB、スループット重視、Cool Threads 機でない
JVM オプション-Dcom.sun.enterprise.server.ss.ASQuickStartup=false
JVM オプション-XX:+UseParallelGC
JVM オプション-XX:+UseParallelOldGC
JVM オプション-XX:LargePageSizeInBytes=2m
JVM オプション-XX:ParallelGCThreads=1
JVM オプション-Xmn512m
JVM オプション-Xms1024m
JVM オプション-Xmx1024m
システムプロパティ - JVM_HEAP_SIZE1024m
システムプロパティ - JVM_PARALLEL_GC_THREADS1
システムプロパティ - MAX_THREAD_POOL_SIZE4

次に、今テストで使っているマシン x2200 というマシンはデュアルコア Opteron が 2 機載っているので、これにあわせて CPU コア数と使用可能なメモリをそれぞれ、4 つ、2048 MB として同様に変更内容を確認してみます。以降スクリーンショットを貼るのは省略 (クリックすれば見れます) して、結果は次の様。前の���と比較すると変更した変数から予測されるとおりの結果になっていると思います。

4 コア、2048 MB、スループット重視、Cool Threads 機でない
JVM オプション-Dcom.sun.enterprise.server.ss.ASQuickStartup=false
JVM オプション-XX:+UseParallelGC
JVM オプション-XX:+UseParallelOldGC
JVM オプション-XX:LargePageSizeInBytes=2m
JVM オプション-XX:ParallelGCThreads=4
JVM オプション-Xmn1024m
JVM オプション-Xms2048m
JVM オプション-Xmx2048m
システムプロパティ - MAX_THREAD_POOL_SIZE16

さて、「Sun の Cool Threads サーバで実行していますか?」というチェックボックスはかなり気になります。T5220 という 8 コアの UltraSPARC T2 のマシンを借りて試します。コア数 8, メモリは変更無しで 2GB として変更内容を確認します。ちなみに、この T5220 は 1 ソケットで、コアあたり 8 スレッド並行処理 x 8 コアで 64 スレッドが OS から見えるマシンです。カッコイイ。

確認画面 の内容は以下のようなもの。Sun プラットフォームでヒープのラージページを 256 MB でとるように変わっています。あとはコア数が増えたことによるそれなりの結果。もしかしたら 8 ではなくて 64 と入れるべきだったのかもわかりませんが、未確認でよくわかりません。

8 コア、2048 MB、スループット重視、Cool Threads 機である
JVM オプション-Dcom.sun.enterprise.server.ss.ASQuickStartup=false
JVM オプション-XX:+UseParallelGC
JVM オプション-XX:+UseParallelOldGC
JVM オプション-XX:LargePageSizeInBytes=256m
JVM オプション-XX:ParallelGCThreads=6
JVM オプション-Xmn1024m
JVM オプション-Xms2048m
JVM オプション-Xmx2048m
システムプロパティ - MAX_THREAD_POOL_SIZE32

最後に、ガベージコレクションの方針、というドロップダウンメニューで、「最大ピークスループット (高 GC 停止時間)」と「低 GC 停止時間 (低ピークスループット」という 2 つの選択肢があり、今までは前者が選択されていましたが、後者を選択し、その他は 1 つ前と同じ設定で試してみます。

確認画面の内容を同様に抽出すると下記の様。GC のアルゴリズムが変わっています。並行マークスイープ (CMS) アルゴリズムを指定して、アプリケーションが受ける停止時間によるインパクトを減らすようにしていますね。

8 コア、2048 MB、GC による停止時間重視、Cool Threads 機でない
JVM オプション-Dcom.sun.enterprise.server.ss.ASQuickStartup=false
JVM オプション-XX:+UseConcMarkSweepGC
JVM オプション-XX:+UseParNewGC
JVM オプション-XX:LargePageSizeInBytes=2m
JVM オプション-XX:ParallelGCThreads=6
JVM オプション-Xmn1024m
JVM オプション-Xms2048m
JVM オプション-Xmx2048m
システムプロパティ - MAX_THREAD_POOL_SIZE32

以上のように見てきましたが、実際チューニングすることになるとこの Performance Advisor が提供する機能はかなり限定的で、これを使えば済む、というようなものではないものの、例えば パフォーマンスチューニングガイドを合わせて参照しながら、チューニング時の出発点として使うにはよいかも知れません。ご興味ある方はぜひ、使ってみて下さい。

Posted at 11:38午前 2 12, 2009 by Shinya Ogino in Sun  | 

Comments:

Post a Comment:
Comments are closed for this entry.