ナビゲーションをスキップ

JRockit SDK ユーザーズ ガイド

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

BEA JRockit JVM の起動とコンフィグレーション

この節では、BEA JRockit の起動方法と、標準および非標準のコマンドライン オプションを使用してコンフィグレーションする方法について説明します。内容は以下のとおりです。

注意 : JRockit が予期しない動作をする場合は、BEA JRockit の開発者向け FAQ を参照してください。それでも問題が解決しない場合は、support@bea.com まで電子メールでお問い合わせください。

 


BEA JRockit を起動する前に

BEA JRockit JVM を起動する前に、次のディレクトリが PATH 環境変数に設定されていることを確認します。

 


BEA JRockit の起動

BEA JRockit を起動するには、コマンドラインで次のように入力します。

java <configuration and tuning options> myClass

<configuration and tuning options> は、使用するコンフィグレーション オプションおよびチューニング オプションです。コンフィグレーション オプションについては、「BEA JRockit のコンフィグレーション」で後述します。このバージョンの BEA JRockit で使用できるチューニング オプションの詳細については、『BEA JRockit JVM チューニング ガイド』を参照してください。

注意 : ファイルの絶対パスを使用して JRockit を起動することもできます。たとえば、Linux では /usr/local/java/bin/java (インストール先によって異なる)、Windows では c:¥bea¥jrockitxxx¥bin¥java (インストール先によって異なる) のようになります。

起動コマンドのサンプル

チューニング オプションを指定した起動コマンドのサンプルは次のようになります。

java -verbose:memory -Xgcprio:throughput -Xmx:256m -Xms:64m -Xns:24m myClass

この例では、以下のオプションが設定されています。

 


BEA JRockit のコンフィグレーション

BEA JRockit の起動時に、標準または非標準のコマンドライン オプションを使用して動作に関するパラメータを設定できます。この節では、これらのオプションについて解説し、起動時にオプションを使用して BEA JRockit をコンフィグレーションする方法について説明します。内容は以下のとおりです。

標準オプションの使用

標準のコマンドライン オプションは JVM に関係なく同じように機能します。つまり、BEA JRockit JVM、Sun Microsystems の HotSpot JVM、または他のサードパーティ JVM のいずれを実行している場合でも同じように機能します。

JVM のタイプの設定

以下のコマンドでは、実行する JVM のタイプ (サーバサイドまたはクライアントサイド) を設定します。

JVM のタイプを設定する (またはデフォルトを受け入れる) と、実行時に使用されるガベージ コレクション アルゴリズムも設定されることに注意してください。-server を指定すると、シングルスペース、パラレル マーク、パラレル スイープのコレクタが起動され、-client を指定すると、シングルスペース、コンカレント マーク、コンカレント スイープのガレージ コレクタが起動されます。動的な統合ガレージ コレクタや特定の固定ガベージ コレクタなど、別のコレクタを使う場合は、コマンドライン オプションとして -Xgcprio または -Xgc を使用してデフォルトをオーバーライドできます。ガベージ コレクションおよび -server オプションと -client オプションの詳細については、「BEA JRockit メモリ管理システムの使い方」を参照してください。

一般的な情報の設定

以下の標準のコマンドライン オプションは BEA JRockit JVM の一般的な情報を設定します。

ユーザへの情報の提供

以下のオプションでは、システムがオペレータにメッセージを提供するかどうかと、そのメッセージの形式や内容について決定します。

非標準オプションの使用

非標準の (-X) コマンドライン オプションは、BEA JRockit JVM 専用のオプションです。さまざまな Java アプリケーションのニーズに合わせて BEA JRockit JVM の動作を変更します。これらのオプションはすべて -X で始まり、他の JVM では機能しません (反対に、他の JVM で使用される非標準のオプションは BEA JRockit では機能しません)。

注意 : これらのオプションは非標準であるため、いつでも変更される可能性があります。

動作に関するオプションの設定

以下の非標準オプションは BEA JRockit JVM の一般的な動作を定義します。

ロギング情報の表示

-Xverbose

-Xverbose を使用すると、BEA JRockit はシステムに関する特定の情報を起動時に画面に出力します。表示される情報は、オプションと一緒に指定するパラメータによって異なります。たとえば、パラメータ cpuinfo を指定すると、CPU に関する情報が表示され、ハイパー スレッディングが有効かどうかを JVM が判断できるかどうかがわかります。表 2-1 は、-Xverbose に使用できるパラメータを示しています。

注意 : 複数のパラメータを使用するには、次のようにカンマで区切ります。

-Xverbose:gc,opt

表 2-1 -Xverbose パラメータ

パラメータ

画面への出力

codegen

コンパイルされる各メソッドの名前。codegen の冗長出力は次のようになります。

[codegen] 0 : 17.9411 ms
[codegen] 0 68592131 1 java.lang.Object.unlockFatReal_jvmpi (Ljava.lang.Object;Ljava.lang.Thread;I)V: 17.94 ms
[codegen] 1 : 2.0262 ms
[codegen] 0 0 2 java.lang.Object.acquireMonitor(Ljava.lang.Object;II)I: 19.97 ms
[codegen] 2 : 4.4926 ms
[codegen] 0 10 3 java.lang.Object.unlockFat(Ljava.lang.Object;Ljava.lang.Thread;I)V: 24.46 ms
[codegen] 3 : 0.3328 ms

cpuinfo

CPU に関する参考情報。cpuinfo の冗長出力は次のようになります。

[cpuinfo] Vendor: GenuineInt
[cpuinfo] Type: Original OEM
[cpuinfo] Family: Pentium Pro
[cpuinfo] Model: Pentium III/Pentium III Xeon
[cpuinfo] Brand: Pentium III processor
[cpuinfo] Supports: On-Chip FPU
[cpuinfo] Supports: Virtual Mode Extensions
[cpuinfo] Supports: Debugging Extensions
[cpuinfo] Supports: Page Size Extensions

load

ロードされた各クラスの名前。load の冗長出力は次のようになります。

[load ] 0 1 java.lang.Object+
[load ] 0 2 java.io.Serializable+
[load ] 0 3 java.lang.Class+
[load ] 0 5 java.lang.reflect.AccessibleObject+
[load ] 0 6 java.lang.reflect.Member+
[load ] 0 6 java.lang.reflect.Method+

memory;
gc


メモリ管理システムに関する以下のような情報。

  • コレクションの開始時間 (JVM が起動してからの秒数)

  • コレクションの終了時間 (JVM が起動してからの秒数)

  • コレクション前にオブジェクトで使用されているメモリ (KB)

  • コレクション後にオブジェクトで使用されているメモリ (KB)

  • コレクション後のヒープ サイズ (KB)

  • コレクションの合計時間 (秒数またはミリ秒数)

  • コレクション中の合計休止時間 (ミリ秒数)

-Xverbose:memory または -Xverbose:gc で表示される情報は、使用するガベージ コレクタのタイプによって異なります。

memory;
gc

gencon の場合

世代別コンカレント コレクタ (-Xgc:gencon) を実行する JVM で、memory または gc を指定する場合、レポートは次のようになります。

[memory ] Generational Concurrent collector
[memory ] nursery 20480K, heap 65536K, maximal heap 262144K
[memory ] <start>: Nursery GC <before>K-><after>K (<heap>K), <total> ms
[memory ] <s>-<end>: GC <before>K-><after>K (<heap>K), <total> s (<pause> ms)
[memory ] <s/start> - start time of collection (seconds since jvm start)
[memory ] <end> - end time of collection (seconds since jvm start)
[memory ] <before> - memory used by objects before collection (KB)
[memory ] <after> - memory used by objects after collection (KB)
[memory ] <heap> - size of heap after collection (KB)
[memory ] <total> - total time of collection (seconds or milliseconds)
[memory ] <pause> - total pause time during collection (milliseconds)
Now running The GcList Test
[memory ] 0.860: Nursery GC 61615K->42008K (86016K), 11.400 ms
[memory ] 0.953: Nursery GC 62488K->42876K (86016K), 10.895 ms
[memory ] 1.031: Nursery GC 63356K->45303K (86016K), 30.156 ms
[memory ] 1.172: Nursery GC 65783K->46168K (86016K), 11.639 ms
[memory ] 1.250: Nursery GC 66648K->48596K (86016K), 31.189 ms
The execution of The GcList Test took 0.578s

memory; gc

singlecon の場合


シングルスペース コンカレント コレクタ (-Xgc:singlecon) を実行する JVM で、memory または gc を指定する場合、レポートは次のようになります。

[memory ] Single Generation Concurrent collector
[memory ] heap 65536K, maximal heap 262144K
[memory ] <s>-<end>: GC <before>K-><after>K (<heap>K), <total> s (<pause> ms)
[memory ] <s/start> - start time of collection (seconds since jvm start)
[memory ] <end> - end time of collection (seconds since jvm start)
[memory ] <before> - memory used by objects before collection (KB)
[memory ] <after> - memory used by objects after collection (KB)
[memory ] <heap> - size of heap after collection (KB)
[memory ] <total> - total time of collection (seconds or milliseconds)
[memory ] <pause> - total pause time during collection (milliseconds)
Now running The GcList Test
[memory ] 1.016-1.172: GC 58543K->13906K (89716K), 0.156 s (3.420 ms)
The execution of The GcList Test took 0.563s
Now running The GcList Test
[memory ] 1.422-1.469: GC 102004K->389K (122816K), 0.047 s (5.048 ms)

memory;
gc

parallel の場合


パラレル コレクタ (-Xgc:parallel) を実行する JVM で、memory または gc を指定する場合、レポートは次のようになります。

[memory ] Parallel collector
[memory ] heap 65536K, maximal heap 262144K
[memory ] <start>: GC <before>K-><after>K (<heap>K), <total> ms
[memory ] <start> - start time of collection (seconds since jvm start)
[memory ] <before> - memory used by objects before collection (KB)
[memory ] <after> - memory used by objects after collection (KB)
[memory ] <heap> - size of heap after collection (KB)
[memory ] <total> - total time of collection (milliseconds)
Now running The GcList Test
[memory ] 1.016: GC 65536K->1463K (65536K) in 12.933 ms
The execution of The GcList Test took 0.500s
Now running The GcList Test
[memory ] 1.282: GC 65536K->1502K (65536K) in 11.046 ms
[memory ] 1.563: GC 65536K->1503K (65536K) in 12.119 ms
The execution of The GcList Test took 0.484s
Now running The GcList Test
[memory ] 1.782: GC 65536K->593K (65536K) in 9.365 ms
The execution of The GcList Test took 0.125s

opt

最適化されるすべてのメソッドの情報。opt の冗長出力は次のようになります。

[opt ] 280 2434 0 ObjAlloc.main([Ljava.lang.String;)V: 0.00 ms
[opt ] 0 : 9.8996 ms

ロギング情報へのタイムスタンプの挿入

-Xverbosetimestamp

-Xverbose で生成される情報にタイムスタンプを加えるには、-Xverbosetimestamp コマンドを使用します。このコマンドを使用すると、次のように日付と時間が冗長出力の前に表示されます。

[Wed Jan 14 16:51:57 2004][14578][load   ]created: java/lang/Integer : 1.4034ms

セキュリティ マネージャを使用したシステムの保護

BEA JRockit では、Management Console、JRA、およびその他のツールでそれぞれの独自のインタフェースを使って実行中のプロセスに接続できます。システム上でローカルに実行するツールに接続できる専用のポートを VM 上に開き、ネットワークの他の場所で動作している他のツールからは接続できないようにすることができます。これにより、承認済みのユーザがプロダクション システムにアクセスしてツールをローカルに実行できるので、承認されないユーザにプロダクション システムへの侵入を許すセキュリティ ホールを作らずに、実行中の BEA JRockit インスタンスに対してモニタまたは接続を実行できます。

これを行うには、セキュリティ マネージャを使用して JVM を実行し、権限を付与するホストに対し、管理サーバへのアクセス権を付与する必要があります。次の手順に従います。

  1. -Djava.security.manager を指定して BEA JRockit を実行します。
  2. ポリシー ファイル内で、以下のコード例に示すように適切なパーミッションを許可します。
  3. grant {
    permission java.net.SocketPermission "localhost:7090", "*";
    }

BEA JRockit JVM (サービスとして実行する場合) がログオフ イベントの受信後に停止しないようにする

BEA JRockit をサービスとして実行している場合 (Web サーバのサーブレット エンジンなど)、CTRL_LOGOFF_EVENT または SIGHUP を受け取る可能性があります。そのようなイベントを受け取ると、VM は停止を始めようとしますが、オペレーティングシステムは実際にはプロセスを終了しないため、停止は失敗します。このような障害の可能性を回避するには、-Xnohup コマンドライン オプションを使用します。BEA JRockit でこのオプションを使用すると、JVM は CTRL_LOGOFF_EVENT または SIGHUP イベントの監視や処理を行いません。

-Xnohup を指定する場合は、以下の点に注意してください。

Linux ユーザに対する特別な注意

32 ビットまたは 64 ビットの Linux マシンで BEA JRockit を実行している場合は、Red Hat AS 上でのコア ダンプを有効にし、すべての Linux バージョンに対して 2 つのスレッド ライブラリのいずれかを選択するために、2 つのコンフィグレーション オプションを追加できます。以下の情報を参照してください。

Red Hat AS でのコア ダンプの有効化

Red Hat AS を使用していて、BEA JRockit がクラッシュした場合に作業ディレクトリに core/javacore ファイルが作成されるようにするには、コア ダンプを有効にする必要があります。そのためには、ulimit -c 値を、ゼロより大きく、ファイル システムが対応できる値に設定します (ulimit -c 10000000 など)。この値はブロック単位で測定されます。各ブロックは 1KB に相当します。ulimit 値は、コマンドライン、*.profile ファイル、またはシェル スクリプトで設定できます。

NPTL のオーバーライド

ネイティブ POSIX スレッド ライブラリ (NPTL) は、Red Hat Enterprise Linux 3.0 で LinuxThreads の代わりに使用できるスレッド ライブラリ オプションです。NPTL を無効にし、LinuxThreads を使用する場合は、環境で LD_ASSUME_KERNEL=2.4.1 を設定します。

 

ナビゲーション バーのスキップ  ページの先頭 前 次