jvm 设置的最佳参数是什么
what are the best parameters to for the jvm settings
我对 java 和 jvm 还很陌生。我有这样的 jvm 设置:
JAVA_OPTS=""-Xmx3072m""
JAVA_OPTS=""${JAVA_OPTS} -XX:-UseVMInterruptibleIO""
JAVA_OPTS=""${JAVA_OPTS} -XX:NewSize=256m""
JAVA_OPTS=""${JAVA_OPTS} -XX:MaxNewSize=256m""
JAVA_OPTS=""${JAVA_OPTS} -XX:PermSize=256m""
JAVA_OPTS=""${JAVA_OPTS} -XX:MaxPermSize=256m""
JAVA_OPTS=""${JAVA_OPTS} -XX:+DisableExplicitGC""
有人可以告诉我这些是否还可以,还有改进的余地。是否缺少任何 jvm 设置以获得最佳性能?
感谢您的任何见解。
如果只有一组 "best parameters",那么 JVM 开发人员会将其作为默认值包含在内,并且不会提供指定不同参数的选项。这将意味着更快乐的用户,并减少他们的工作!
这些参数存在的事实 表明 JVM 开发人员知道一组参数值并不适合所有应用程序 -因此,他们投入了巨大的努力来让你改变它。
您当前指定的参数适用于需要大量 RAM、想要设置大型 perm-space(可能是为了覆盖类加载器错误;您是 运行?),并且不希望 IO 被 vm 中断(尽管该特定标志似乎只适用于 Solaris)。您可以在此处look up all arguments。
你没有提到你使用的是哪个jvm。如果您使用 java 8,permsize 和 maxpermsize 已被弃用,并分别由 -XX:MetaspaceSize 和 -XX:MaxMetaspaceSize 选项取代。
您正在将 newSize 和 maxNewSize 设置为相同的值,而您可以使用选项 -Xmnsize,它将 newSize 和 maxNewSize 设置为相同的值。
DisableExplicitGC 是在代码中禁用 System.gc() 调用,因此如果您想禁用这些调用,您可以考虑将其从代码中删除。
我对 java 和 jvm 还很陌生。我有这样的 jvm 设置:
JAVA_OPTS=""-Xmx3072m""
JAVA_OPTS=""${JAVA_OPTS} -XX:-UseVMInterruptibleIO""
JAVA_OPTS=""${JAVA_OPTS} -XX:NewSize=256m""
JAVA_OPTS=""${JAVA_OPTS} -XX:MaxNewSize=256m""
JAVA_OPTS=""${JAVA_OPTS} -XX:PermSize=256m""
JAVA_OPTS=""${JAVA_OPTS} -XX:MaxPermSize=256m""
JAVA_OPTS=""${JAVA_OPTS} -XX:+DisableExplicitGC""
有人可以告诉我这些是否还可以,还有改进的余地。是否缺少任何 jvm 设置以获得最佳性能?
感谢您的任何见解。
如果只有一组 "best parameters",那么 JVM 开发人员会将其作为默认值包含在内,并且不会提供指定不同参数的选项。这将意味着更快乐的用户,并减少他们的工作!
这些参数存在的事实 表明 JVM 开发人员知道一组参数值并不适合所有应用程序 -因此,他们投入了巨大的努力来让你改变它。
您当前指定的参数适用于需要大量 RAM、想要设置大型 perm-space(可能是为了覆盖类加载器错误;您是 运行?),并且不希望 IO 被 vm 中断(尽管该特定标志似乎只适用于 Solaris)。您可以在此处look up all arguments。
你没有提到你使用的是哪个jvm。如果您使用 java 8,permsize 和 maxpermsize 已被弃用,并分别由 -XX:MetaspaceSize 和 -XX:MaxMetaspaceSize 选项取代。 您正在将 newSize 和 maxNewSize 设置为相同的值,而您可以使用选项 -Xmnsize,它将 newSize 和 maxNewSize 设置为相同的值。
DisableExplicitGC 是在代码中禁用 System.gc() 调用,因此如果您想禁用这些调用,您可以考虑将其从代码中删除。