私は自分のコンピューターで長時間実行されているJavaジョブを実行していますが、深刻なメモリプレッシャーに遭遇し、ガベージコレクターを頻繁に実行する必要があるため、終了に近づくと非常に遅くなります。-Xmx
つまり、このジョブに必要な最大ヒープサイズを過小評価していました。
ジョブを再開したくないので、JVMがすでに開始された後、たとえばを使用するなどして、JVMに最大ヒープサイズを変更させる方法はありますjinfo -flag
か?これは可能ですか?
jinfo -flag +Xmx1024m
またはのバリエーションを試してみましたがjinfo -flag Xmx=1024m
、すべて次の例外があります。これはDebianバグ#532538の症状ですか(影響を受けるバージョンのJVMを使用しています)、これは予期された動作ですか(後で変更することは不可能-Xmx
です)、またはフラグをjinfo
誤って提供していますか?
Exception in thread "main" java.io.IOException: Command failed in target VM
at sun.tools.attach.LinuxVirtualMachine.execute(LinuxVirtualMachine.java:218)
at sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:213)
at sun.tools.attach.HotSpotVirtualMachine.setFlag(HotSpotVirtualMachine.java:190)
at sun.tools.jinfo.JInfo.flag(JInfo.java:129)
at sun.tools.jinfo.JInfo.main(JInfo.java:76)