【问题标题】:Increasing Heap Size on Linux Machines在 Linux 机器上增加堆大小
【发布时间】: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

标签: java linux performance tomcat ubuntu-12.04


【解决方案1】:

更改 Tomcat 配置不会影响所有 JVM 实例以获取这些设置。 这不是它的工作原理,该设置将仅用于启动 Tomcat 使用的 JVM,而不是在 shell 中启动。

查看here 永久更改堆大小。

【讨论】:

  • 谢谢。我读过最好将XmxXms 设置为相同的值。但我想知道MaxPermSize。如果 XmxXms 为 12 GB。总内存为 16 GB。 MaxPermSize 的最佳价值是多少?
  • 堆没有最佳设置。一切都取决于您的应用程序。不要尝试分配尽可能多的堆,因为这会导致长时间的 GC 触发暂停。 Google for Java 堆指南。 MaxPermSize 也是如此 - 您可以在此处阅读更多相关信息 - stackoverflow.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}

【讨论】:

    猜你喜欢
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 2010-09-14
    • 1970-01-01
    • 2014-10-24
    • 2012-12-07
    • 2013-01-26
    相关资源
    最近更新 更多