实例解析Linux平台的JVM性能评测

开发 后端
在Linux平台上,Sun的Hotspot性能很一般,不如同样环境下Windows下的Hotspot表现好;IBM的JVM无论在Linux还是Windows平台性能很卓越,不过IBM主要还是把精力放在Linux/Unix平台上.

本文向大家简单介绍一下Linux平台的JVM性能评测,在Linux平台上,Sun的Hotspot性能很一般,不如同样环境下Windows下的Hotspot表现好。

Linux平台的JVM性能评测

        在Linux平台上,Sun的Hotspot性能很一般,不如同样环境下Windows下的Hotspot表现好;IBM的JVM无论在Linux还是Windows平台性能很卓越,不过IBM主要还是把精力放在Linux/Unix平台上,它的Windows平台的JVM到1.3.1性能口碑很好,但是以后就没有再单独发布新版本,因此从IBM网站也只能下载到Windows下1.3.1版本JVM,至于Linux平台下的1.4.1版本的JVM性能表现尚待检验;
  
  而BEA的JRockit针对Intel的CPU进行了指令优化,作为服务器的JVM来说在业界似乎一向评价颇好,但是我还不清楚JRockit在Linux上表现如何。这次我是要在SuSELinux上跑jroller,因此主要关注3个JVM在我的SuSE9上面的性能表现。
  
  因为要作为网站服务器来使用,因此我还比较关注JRockit和IBMJVM的License问题,分别查了一下BEA和IBM的协议,看到这两个JVM都是可以免费使用,不管是开发目的,还是产品目的,如果是购买了其公司其他产品,那么可以得到免费的JVM方面的support,如果只是从网站下载使用其JVM,那么就没有免费的support,但是有商业付费的support。
  
  在TSS上面有一个关于JRockit的Thread:
  
  http://www.theserverside.com/news/thread.tss?thread_id=22895
  
  IBMJVM处理数学运算速度最快,BEAJVM处理大量线程和网络socket性能***,而SunJVM处理通常的商业逻辑性能***。不过Hotspot的Servermode被报告有稳定性的问题。而他尚未有机会尝试一下***的JRockit。
  
  架设Blog系统我最关心的其实还是JVM的多线程处理能力和网络socket处理能力,因此使用著名的VolanoMarkBenchmark进行了这方面的测试
  
  VolanoMarkBenchmark是一个JVM性能测试程序,任何人都可以自己下载来测试:
  
  http://www.volano.com/benchmarks.html
  这是2003年5月的测试报告
  http://www.volano.com/report/
  
  我下载了VolanoMarkBenchmark,在Server上面分别安装了Linux版本的JRockit1.4.2,SunJDK1.4.2,和IBMJDK1.4.1。修改了一下VolanoMark的测试脚本(有些小问题)。VolanoMark测试主要是运行Volano自己开发的一个chat的webapplication,然后从客户端进行压力测试,统计webapplication单位时间内处理并发请求的能力。测试主要有两项:
  
  1、Loopback测试
  
  不进行网络传输测试,因此可以测试出来JVM的performance
  
  2、Network测试
  
  通过网络进行测试,模拟真实环境的JVM处理能力。
  
  服务器软硬件环境:
  
  服务器CPU:超线程1.8GzXeonCPU×2
  操作系统:SuSELinux9.0Professional
  LinuxKernel版本:2.4.21-202-smp4G
  Glibc版本:glibc-2.3.2-88
  
  Volano使用的是Tomcat4.0.3来做AppServer。这也符合我的选择,我正准备使用Tomcat来做AppServer。每个测试分别执行三次,测试结果如下:
  
  1、性能测试(Loopback)  
 

性能测试

  Performance
  
  VolanoMarkversion=2.5.0.9
  Messagessent=20000
  Messagesreceived=380000
  Totalmessages=400000
  
  代码:
  SunJDK1.4.2  

  1.   Averagethroughput=8848messagespersecond 
  2.   Averagethroughput=8060messagespersecond 
  3.   Averagethroughput=8046messagespersecond 
  4.  

  代码:
  IBMJDK1.4.1 

  1.     
  2.   Averagethroughput=15620messagespersecond 
  3.   Averagethroughput=17665messagespersecond 
  4.   Averagethroughput=15666messagespersecond 

  代码:
  BEAJRockit1.4.2 

  1.     
  2.   Averagethroughput=16549messagespersecond 
  3.   Averagethroughput=15564messagespersecond 
  4.   Averagethroughput=15736messagespersecond 

 #p# 2、网络服务处理能力测试
  
  VolanoMarkversion=2.5.0.9
  Messagessent=10000
  Messagesreceived=190000
  Totalmessages=200000

JVM网络服务测试

  代码:
  BEAJRockit1.4.2   

  1.   Averagethroughput=3938messagespersecond 
  2.   Averagethroughput=3290messagespersecond 
  3.   Averagethroughput=3648messagespersecond 
  4.   Averagethroughput=3328messagespersecond 

  代码:
  SunJDK1.4.2   

  1.   Averagethroughput=2225messagespersecond 
  2.   Averagethroughput=2163messagespersecond 
  3.   Averagethroughput=2080messagespersecond 

  代码:
  IBMJDK无法执行测试
  
  测试总结:
  在***项性能测试中,3个JVM都完成测试,但是正如上面Purdy提到的一样,Sun的HotspotJVM在servermode情况下会出错,必须使用clietmode。在性能测试结果来看,IBM的JVM和BEA的JVM旗鼓相当,分值都相当高,而Sun的JVM性能差了几乎一倍。
  
  在第二项网络服务测试中,IBM的JVM无法完成测试,会出现段地址错误,JDK版本和glibc版本不兼容造成的。Sun的JVM也需要修改一下JVM参数才可以顺利执行,从测试结果来看,BEA的JRockit仍然***于Sun的Hotspot。
  
  经过本次测试,已经决出了优胜者,就是BEA的JRockit1.4.2。当然JRockit也有一些不足,例如在内存消耗和CPU负载方面要明显高于另外两个JVM。
  
  JRockit除了性能上的优势,也有着丰富的性能调整选项和一个图形监控工具,和一个性能报告分析工具,这对于JVM的调优有着非常大的帮助,鉴于性能方面的优势,以及可管理性方面的丰富功能,我决定选择JRockit作为Tomcat的JVM来使用。

【编辑推荐】

  1. Inside JVM体系结构详解
  2. 深入JVM:ClassLoader相关知识简介
  3. 调用weblogic设置jvmheap大小
  4. 详解Tomcat配置JVM参数步骤
  5. 深入学习JVM内存设置原理和调优
责任编辑:佚名 来源: chinaitlab.com
相关推荐

2010-03-04 10:56:52

JVM参数

2010-09-26 14:55:46

JVM内存监控

2009-12-03 19:02:05

Linux

2015-04-30 13:21:29

IaaS平台性能云智慧监控宝

2015-05-07 14:06:31

云智慧监控宝IaaS平台

2015-06-23 16:18:26

性能优化

2024-01-29 08:26:13

Span高性能数组数据结构

2009-09-18 13:05:59

.NET CLR

2012-07-24 17:10:10

Linux操作系统

2010-06-11 11:20:18

Linux性能测试工具

2010-06-22 13:23:18

Linux at命令详

2010-09-27 10:20:09

JVMLinux

2009-09-07 09:56:02

Linux系统LVM扩充Linux

2009-07-10 16:17:41

JVM 1.6

2010-11-08 14:26:16

云计算标准

2011-03-09 11:21:39

CYQ.Data

2010-12-20 09:37:55

Opera 11Chrome 10

2011-04-13 11:16:10

路由器WCCPWeb

2021-06-10 09:40:12

C++性能优化Linux

2013-02-22 09:49:29

Nagios监控性能评测
点赞
收藏

51CTO技术栈公众号