我知道我可以通过添加来禁用Java对进程的大页面使用
-XX:-UseLargePages
到流程调用行。
但是,我想防止每个Java应用程序使用大页面,而无需发现机器上正在运行的每个进程。
在RH中禁用THP不会这样做。默认情况下,即使禁用了THP,Java仍然会从大页面分配内存。
最佳答案
尝试在环境变量JAVA_TOOL_OPTIONS中进行设置
有关详细信息,请参见http://www.oracle.com/technetwork/java/javase/envvars-138887.html
我在Eclipse安装中检查了这一点。在启动它之前,我用set JAVA_TOOL_OPTIONS="-Dfoo=123 -Dbar=456"
设置了变量(在命令行上使用export
或在environment
文件中进行设置在Linux上也可以达到同样的效果)。
使用visualvm检查JVM显示是否考虑了新参数:
在控制台或相应的日志文件上,您很可能会看到如下所示的条目:
捡起JAVA_TOOL_OPTIONS:“-Dfoo = 123 -Dbar = 456”