在 Linux 机器上增加堆大小
Posted
技术标签:
【中文标题】在 Linux 机器上增加堆大小【英文标题】:Increasing Heap Size on Linux Machines 【发布时间】:2014-10-25 13:30:18 【问题描述】:我在 Ubuntu 桌面机器上工作,我想增加 Java 的堆大小。 RAM 为 16GB,当前最大堆大小为 3GB
我查看了这篇帖子Increasing Tomcat Heap Size
没有太多关于 Ubuntu 的信息,所以我尝试了这个命令:
java -Xmx10000m -X2000m -XshowSettings:all
结果是:
Min Heap Size: 1.95G
Max Heap Size: 9.77G
然后sudo gedit /etc/tomcat7/default
并将此 lino 更改为:
JAVA_OPTS="-Djava.awt.headless=true -Xmx10000m -XX:MaxPermSize=2000m"
然后我重新启动了机器并使用以下方法检查了最大尺寸:
java -XshowSettings:all
这表明:
Max Heap Size (Estimated): 3.80GB
我想利用我获得的高 RAM (16 GB)。还有什么我可以做的吗?
【问题讨论】:
@BackSlash 是的,当我输入free -m
并且 OSType 为 64 位时,它显示 16 GB
【参考方案1】:
更改 Tomcat 配置不会影响所有 JVM 实例以获取这些设置。 这不是它的工作原理,该设置将仅用于启动 Tomcat 使用的 JVM,而不是在 shell 中启动。
查看here 永久更改堆大小。
【讨论】:
谢谢。我读过最好将Xmx
和Xms
设置为相同的值。但我想知道MaxPermSize
。如果 Xmx
和 Xms
为 12 GB。总内存为 16 GB。 MaxPermSize
的最佳价值是多少?
堆没有最佳设置。一切都取决于您的应用程序。不要尝试分配尽可能多的堆,因为这会导致长时间的 GC 触发暂停。 Google for Java 堆指南。 MaxPermSize 也是如此 - 您可以在此处阅读更多相关信息 - ***.com/questions/12114174/what-does-xxmaxpermsize-do。【参考方案2】:
可以使用以下代码sn -p:
java -XX:+PrintFlagsFinal -Xms512m -Xmx1024m -Xss512k -XX:PermSize=64m -XX:MaxPermSize=128m
-version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
在我的电脑中,我得到以下输出:
uintx InitialHeapSize := 536870912 product
uintx MaxHeapSize := 1073741824 product
uintx PermSize := 67108864 pd product
uintx MaxPermSize := 134217728 pd product
intx ThreadStackSize := 512 pd product
【讨论】:
以上是关于在 Linux 机器上增加堆大小的主要内容,如果未能解决你的问题,请参考以下文章