ページの先頭行へ戻る
Interstage Application Server/Interstage Web Server チューニングガイド
Interstage

8.4.2 スタックのチューニング

  本節では、Javaアプリケーションで使用するスレッドのスタックのチューニング方法および、チューニングによる影響範囲を説明します。

■チューニング方法

  Java APIで生成するスレッドのスタックサイズは、“-Xss”オプションで指定することができます。

  “-Xss”オプションは、バイト単位でスタックサイズを指定します。例えば、スタックサイズを512KBに設定する場合、“-Xss512k”と指定します。

  なお、mainメソッドが実行されるスレッドはJava VMの起動前に作成されたスレッドである(Java APIで作成されたスレッドではない)ため、“-Xss”オプションによるスタックサイズの指定は効果がありません。

  またJDK/JRE内で実行されるJavaメソッドを自動的にコンパイルする専用スレッド(コンパイラスレッド)のスタックサイズは、“-XX:CompilerThreadStackSize”オプションで指定することができます。

  通常、コンパイラスレッドのスタックサイズを指定する必要はありません。

  “-XX:CompilerThreadStackSize”オプションは、キロバイト(Kバイト)単位でコンパイラスレッドのスタックサイズ指定します。例えば、スタックサイズを1024KBに設定する場合、”-XX:CompilerThreadStackSize=1024”と指定します。

  Java APIで生成したスレッドおよびコンパイラスレッドのデフォルトのスタックサイズを、“表8.8 Java APIで生成したスレッドおよびコンパイラスレッドのデフォルトのスタックサイズ”に示します。

表8.8 Java APIで生成したスレッドおよびコンパイラスレッドのデフォルトのスタックサイズ

JDK/JREのバージョン

OS

JDK/JREの実行モード

Java APIで生成したスレッド(注1)

コンパイラスレッド (Client VM)(注1)

コンパイラスレッド (FJVM)

JDK/JRE 5.0

Windows

32ビットモード

256KB

256KB

2048KB

Linux for x86

Linux for Intel64

Solaris

32ビットモード

512KB

512KB

2048KB

Windows Server(R) x64 Editions

Linux for Intel64

64ビットモード

1024KB

    -(注2)

4096KB

JDK/JRE 6

Windows

32ビットモード

320KB

320KB

2048KB

Linux for x86

Linux for Intel64

32ビットモード

320KB

512KB

2048KB

Solaris

32ビットモード

512KB

512KB

2048KB

Windows Server(R) x64 Editions

Linux for Intel64

64ビットモード

1024KB

    -(注2)

4096KB

注1) Windows版JDK/JREにおけるスタックサイズは、java.exeなどWindows版JDK/JREが提供するJDKツールを用いた場合の値です。JNIを用いて独自にJava VMを起動しているWindowsアプリケーションの場合は、Java VMを起動したプログラムのメインスレッドに対するスタックサイズと同じ値になります。

注2) 実行モードが64ビットモードのJDK/JREでは、Java HotSpot Client VMは搭載していません。

注3) スタック領域の実際の管理はOSが行います。そのためスタック領域に関する管理方法/動作仕様については、JDK/JREを実行する各OSの仕様に依存します。

■チューニングの影響範囲

  スタックのサイズを変更した場合の影響範囲を、次に示します。