質問: Java VMヒープ領域の初期サイズを変更するには Javaのアプリケーションを動作させているのですが、挙動が重く 調べてみると、ヒープの初期サイズが32MBとなっていました。 /home/oracle/jps -v 26957 WLST -DORACLE_HOME=/home/oracle/FMW/oracle_common -Xms32m -Xmx1024m java -Xms1024と設定しようとしたら rror occurred during initialization of VM Too small initial heap とエラーが出ました。 java -Xms256 java -Xms128 引数に使われていた32Mでも java -Xms32 同様のエラーが出ました。 ヒープの初期サイズを最大サイズと同じ1024MBとしたいのですが どうしたらよいでしょうか。 OS:CentOS6.4 JDK:1.8 メモリサイズは4GBです。
回答: ``` java -Xms1024 ``` だと、初期ヒープサイズを1024バイトにすることになってしまいます。 1024バイトは明らかに小さすぎるので、「Too small initial heap」とのエラーメッセージが出されたのでしょう。 初期ヒープサイズと全ヒープサイズを1024MBにするのであれば、 ``` java -Xms1024m -Xms1024m ``` とします。 (数字の後にメガバイトを意味する m がついていることに注目してください) == 32MBで足りないからといって、一気に32倍(1GB)に増やすのは適切とは思えません。 1.2~1.5倍に増やしてみて、ダメなら更に1.2~1.5倍に増やすのが良いです。そうすれば、使いもしないヒープ領域でメモリを浪費せずに済むからです。 (おにぎり1個で物足りないからといって、おにぎり30個余りを一気食いしたりしないでしょ?) また、ヒープ領域を動的に拡張をしている事が、挙動が重い原因なのかどうかを検証する必要があるかと思います。