lzj0470 2010-05-05 08:24 采纳率: 0%
浏览 359
已采纳

对JSP进行压力测试的问题

创建了一个WEB工程,WEB工程只有一个JSP页面,JSP不进行任何的操作。我压了8分钟后,tomcat就崩溃掉。
站点环境:
在AMD双核、串口7200转硬盘、金士顿内存2G

站点情况:
站点WEB服务器
tomcat6.0

WEB服务器的JVM
1024M

站点宽带情况
网通2M

测试内容
对test.jsp页面进行压力测试

测试计划
50个用户并发。刚开始只有20个用户,每30秒增加20个。测试持续30分钟,30分钟后,每1分钟减少10用户。

测试结果:
压8分钟后,就会出现
java.lang.OutOfMemoryError: Java heap space
在我看。不可能那么快就崩溃掉才对啊。

  • 写回答

5条回答 默认 最新

  • iteye_20112 2010-05-06 22:34
    关注

    [quote]现在的问题是同时50个人,就出现OutOfMemory啦。照你的说法,50个人,也只创建50个session才对呀。 [/quote]

    我之前已经说过,你的测试方式有问题,你测试中的一个人操作一次,就会新增一个Session。
    如果测试中50个人,每个人1秒钟访问一次,则1分钟生成的Session的个数是: 50*1*60 = 3000,如果是在局域网中进行测试,访问一个网页所需要的时间可能只有0.1秒左右,所以1秒内一个用户可以点击页面10次,则每分钟生成的Session数就更多。

    而真正的浏览器在访问某个网站时,网站会给其返回相应的Session-ID,浏览器会自动地将Session-ID保存在Cookie中,你刷新页面之后,浏览器会自动将Session-ID传送给服务器。

    你模拟测试时,用户在收到服务器响应后,应该不会将Session-ID保存下来吧?
    如果保存下来,用户有没有将Session-ID又传送给服务器?
    如果没有这样做,你模拟的用户每点击一次,则Tomcat会其分配一个新的Session。

    如果还不能理解,建议你去网上查查JSP Session机制,了解一下原理。然后这个问题就可以解决了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?