新しいメモリ オプションを使用して Java プロセスを再起動し、-Xms4G -Xmx4G -XX:MaxDirectMemorySize=6G
これらの変更、特に 6G のダイレクト メモリが正しく適用されているかどうかを確認したいと考えました。
これを確認するために私が見つけた最初の解決策は、java
それ自体によるものでしたが、これは単に を報告しただけ0
で、新しい設定が効果がないことを意味しています。
bash-4.4$ java -XX:+PrintFlagsFinal -version | grep MaxDirect
uintx MaxDirectMemorySize = 0 {product}
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
後で見つけた 2 番目の解決策はjinfo
、経由6G
でした。
bash-4.4$ jinfo -flag MaxDirectMemorySize 1
-XX:MaxDirectMemorySize=6442450944
以前は他の目的で に依存していましたjava -XX:+PrintFlagsFinal
が、期待値が返されない理由が不思議です。java
と が異なる結果をjinfo
返すのはなぜですか?