如果我将初始堆大小设置得相对较低(例如,-Xms128m),而将最大堆大小设置得很高(-Xmx4g),是否可以对Tomcat性能产生负面影响?另外,将-XX:MaxPermSize设置为与-Xms相同的值是否有效果?

最佳答案

建议使Xms接近应用程序的正常使用情况。当应用程序需要更多内存时,将Xms设置为较低的值将导致频繁的gc。这将使应用程序变慢,直到有足够的内存分配给JVM。在这种情况下分配的内存可能会碎片化,这会影响性能。我通常将Xms和Xmx设置为相同的值。

我认为MaxPermSize和Xms之间没有任何关系。两者彼此独立。 PermSize是Xmx设置的附加功能,用于保存类对象和方法对象。

09-11 18:14