使用-server JVM选项运行tomcat

时间:2011-04-13 04:40:26

标签: java performance tomcat jvm

我正在使用-server jvm选项测试我的tomcat服务器4。我的JDK在FreeBSD上是1.5。

我没有看到任何明显的差异或任何问题。如果我要在我的产品系统上启用此选项,我可以期待什么样的改进以及我应该注意哪些问题?

我已阅读What's the effect of -server option for the HotSpot JVM?,但未对此进行详细讨论。

5 个答案:

答案 0 :(得分:3)

JVM很可能已经在服务器模式下运行。对于Linux上的JDK 5/6,JVM将在服务器级机器上默认为服务器模式:

  

“[...]服务器级计算机的定义是至少有2个CPU和至少2GB的物理内存。”

记录here(以及Java 6的here)。

FreeBsd上没有说明会发生什么,但我认为FreeBsd JVM只是服务器模式,或者它们在服务器级机器上默认为服务器模式,就像Linux一样。

答案 1 :(得分:2)

诀窍是现代JVM可以“自动检测”类似服务器的机器。因此,如果您未指定-server-client,JVM1.5 +将选择最佳方法 - 即使您不使用该属性,它也可能会在服务器模式下运行。

在这种情况下,如果使用-client选项启动JVM,您可能会注意到不同。

<强>参考

答案 2 :(得分:1)

服务器模式的第一个区别是打开并行GC,它是一个吞吐量垃圾收集器,推荐用于多核机器。一般来说,它会为您提供更短的垃圾收集延迟。

其次,服务器模式将在JIT中使用更积极的优化。

我认为服务器模式是生产机器必备的。

我建议你切换到1.6 JVM,因为它有更好的gc实现,并且更好地进行了优化。

答案 3 :(得分:0)

OTN website讨论了差异。我们很少在任何生产系统中使用默认参数(GC收集算法,堆大小等),因此它不会提供太大的提升。

在实现此参数后,您没有需要注意的任何具体事项,但如果您看到-server和-client之间存在差异,那么JIT编译器始终是一个好的起点。

答案 4 :(得分:-2)

由于不同的垃圾收集和其他参数,您会注意到长期的差异。