刚刚用JMeter侧了一下Tomcat和Resin,结果Resin遥遥领先! 

04-10-20 leema
我现在在做一个社区网站,用的是Tomcat,Struts,Hibernate,mysql。

因为在网上看到一些Resin的性能比Tomcat好很多的说法,自己也试了一下。

用JMeter,请求一个JSP页面。没有动态的内容和数据库调用(嘿嘿为了方便,改天在试一下更复杂一点的),文件大小6041b,共123行。

测试结果,Resin的请求响应速度比Tomcat快5倍。

---------------------------------------------------------------------

100个线程每隔1秒钟请求一次,如此循环100次。结果Resin的平均响应时间为 304ms , tomcat为 1557。

具体数据如下:

Number of Threads:100

Ramp-Up Period(in seconds):1

Loop Count:100

结果为:

resin: Average: 304ms, Deviation: 1605

tomcat: Average: 1557, Deviation: 4731

---------------------------------------------------------------------

看来,我是得改用Resin了。(可是不太熟啊)

还有一个问题向请教高手。

如果Resin和Apache结合起来,让Apache处理静态的,动态的扔给Resin处理的话,应该怎么能够让Apache把Struts的*.do请求也仍给Resin处理啊?应该怎么配置啊?整个晚上都在搞这个东西,头都大了。请高手帮忙啊!

    

leema
2004-10-20 04:51
resin响应JSP的速度比响应Html的速度块啊(同样的内容)!

记得以前微软在.net刚出来的时候建议程序员把静态的html都改成aspx后缀的动态文件,当时我还不太理解这样做的好处。。。

不过现在看来,这样的确可以提高性能。

我认为这可能是因为JSP编译成Servlet以后就是直接把源代码里面的内容write,而静态的文件的话必须先read文件内容再write。

我刚刚又比较了一下apache和resin处理静态HTML请求的响应速度。结果还是resin胜出,比apache快了1/3左右。侧了三次都差不多如此。真不敢相信apache也比不过resin!如果真是这样,我也没必要做什么apache和resin的结合了,全用resin反而更省事、更快啊!而且把所有的静态文件的后缀统统改称.JSP,呵呵。。。

不知道更复杂的环境里面会是怎样,有没有人在这方面做个更详细的测试?不妨拿出来大家一起讨论讨论吧。

我今天的结论是:

1.处理JSP,resin比tomcat快。

2.处理HTML,resin也比apache快。

3.resin处理JSP,比处理HTML快。

测试版本:

apache2.0.52

tomcat4.1

resin2.1.14

leema
2004-10-20 05:56
我刚刚又换了BEA的虚拟机jrockit-j2sdk1.4.2_04侧了一下resin,结果速度又提升了很多。

BEA的虚拟机好像越到后来越快啊,不知道用了什么算法。

看来BEA不单单是Weblogic做得好,他的虚拟机也比Sun的作得好很多啊!

还是上面的测试条件侧的JSP请求,结果一次比一次快,第三次的测试结果平均响应速度居然能够达到24ms啊!

以后我也得改用BEA的虚拟机了,呵呵。。。

大家也可以改装BEA的虚拟机试一试,真的提升不少性能。

zb1015
2004-10-20 09:04
BEA和IBM在java推广上做的比sun好,jdk也是一样的,对了BEA的jdk和sun的在api上有没有用法的区分,是自由下载的吗?我一直用sun的jdk,对BEA的不了解

leema
2004-10-20 12:57
> BEA和IBM在java推广上做的比sun好,jdk也是一样的,对了BE

> 的jdk和sun的在api上有没有用法的区分,是自由下载的吗??> 一直用sun的jdk,对BEA的不了解

我也刚刚装了BEA的虚拟机,Resin和Eclipse都在这上面跑,用起来不需要什么设置,跟Sun的一样。

不过用JMeter的时候碰到了问题。其启动脚本里的

-------------------------------------------------------------

set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m

set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50%

set TENURING=-XX:MaxTenuringThreshold=2

set EVACUATION=-XX:MaxLiveObjectEvacuationRatio=20%

set PERM=-XX:PermSize=64m -XX:MaxPermSize=64m

set DEBUG=-verbose:gc -XX:+PrintTenuringDistribution

-------------------------------------------------------------

这几行通不过,好像启动参数的用法跟Sun的有点不一样。把这些都注释掉就可以启动JMeter了。(我也还没来得及仔细研究Jrockit的用法。)

我还没有把这几行注释掉以后在Sun的虚拟机上跑过。

猜你喜欢
5Go 1 2 3 4 ... 5 下一页