实例解析Linux平台的JVM性能评测
创始人
2024-07-14 14:31:12
0

本文向大家简单介绍一下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内存设置原理和调优

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...