Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用-server-JVM选项运行tomcat_Java_Performance_Tomcat_Jvm - Fatal编程技术网

Java 使用-server-JVM选项运行tomcat

Java 使用-server-JVM选项运行tomcat,java,performance,tomcat,jvm,Java,Performance,Tomcat,Jvm,我正在使用-server jvm选项测试我的tomcat服务器4。我的JDK在FreeBSD上是1.5 我看不到任何明显的区别或任何问题。如果我要在我的prod系统上启用此选项,我可以期待什么样的改进,我应该注意什么样的问题 我已经读过了,但它没有详细讨论这一点。讨论了区别。在我们的任何生产系统中,我们很少使用默认参数(GC收集算法、堆大小等),因此它没有提供太多的提升 在实现此参数后,没有任何具体的事情需要注意,但是如果您看到-server和-client之间的差异,那么JIT编译器总是一个很

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

我看不到任何明显的区别或任何问题。如果我要在我的prod系统上启用此选项,我可以期待什么样的改进,我应该注意什么样的问题

我已经读过了,但它没有详细讨论这一点。

讨论了区别。在我们的任何生产系统中,我们很少使用默认参数(GC收集算法、堆大小等),因此它没有提供太多的提升


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

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

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

这是有文档记录的(对于Java6)


没有详细说明FreeBsd上会发生什么,但我希望是FreeBsd JVM只是服务器模式,或者像Linux一样默认为服务器类机器上的服务器模式。

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

在这种情况下,如果使用
-client
选项启动JVM,您可能会注意到一个差异

参考


服务器模式的第一个区别是启用并行GC,它是一个吞吐量垃圾收集器,建议用于多核机器。通常,它会缩短垃圾收集的延迟时间

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

我认为服务器模式是生产机器上必须具备的


我建议您切换到1.6 JVM,因为它有更好的gc实现,并且优化得更好。

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

建议:使用tomcat 6和JDK 6。@Harry Joy-我希望我能:(我在JDK1.5上。说JVM从1.5开始默认为服务器类机器的服务器模式。所以我想我不需要显式地打开它。呃……他没有。这就是他的问题所在。)。