apache tomcat win下测试

骑士的崛起 2013-11-14 10:27:59
我用apache+2tomcat在windows下做测试,用自带工具ab测试apache地址,500并发量时响应时间10秒多,测试1000并发直接报(apr_socket_connect(): 由于目标计算机积极拒绝,无法连接。)。直接测试一个单独的tomcat,并发量1000时响应时间不到0.4秒,两种方式并发量100时响应时间基本一样30毫秒。
这是因为win环境的问题,还因为apache做负载均衡资源被消耗在分发请求上了,还是什么别的原因?
...全文
214 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
MiceRice 2013-11-19
  • 打赏
  • 举报
回复
ab -c 指的是并发线程数,也就是说是测试端可同时发起的请求数,但它不等于实际上服务器同时处理的请求数。 比如:指定测试端并发线程数为 100,Tomcat实际的线程池为 20。 那么测试开始的一瞬间,100个线程向Tomcat发起了请求,但Tomcat实际分配线程进行处理的只有其中20个,另外80在等待队列中。 在这个场景中,服务器端的实际并发处理量是 20 而已,虽然测试端发起的并发请求数是100。 这也是为什么衡量系统性能时,我们更看重的是 TPS + 平均响应时间。并发量更多用于考察系统的可用性以及极限容量。
骑士的崛起 2013-11-19
  • 打赏
  • 举报
回复
引用 5 楼 ldh911 的回复:
ab的-c不是是指并发量?
MiceRice 2013-11-19
  • 打赏
  • 举报
回复
这个要看网络IO、CPU负载等情况才能清楚了。 ab还是靠谱的,美中不足的是它所搜集的信息较少,如果想更好些,可以用LoadRunner。注意LR这东西对压力测试机自身带来不小的压力,所以要独立机器来测。 Tomcat能支持多少并发,取决于你开多少线程。不过我认为你理解的2000并发不是那种2000并发。 比如你Tomcat只开了 100 线程,但是处理速度极快,每个请求平均只花费 50ms,那么2000并发上来,总花费时间就是:2000/100*50ms = 1000ms,对你来说,感觉就是一秒搞定2000请求。然而实际并发度最多也就100而已。所以这种情况下,我们更看重的是 TPS。
骑士的崛起 2013-11-15
  • 打赏
  • 举报
回复
引用 3 楼 ldh911 的回复:
因为反向代理过程中,Apache的线程全程为一个请求服务,如果Apache线程数太低,你后面Tomcat有100个集群也白搭。
增加线程数后,2000并发可以正常响应了,不过响应速度好慢,估计是因为我把其中一个tomcat和apache放一起的原因。 另外感觉ab.exe -n 4000 -c 2000 http://localhost/,这个工具不靠谱啊,我用这个连一个单独的tomcat时,一个失败连接都没有,响应速度也挺快,难道tomcat能支持2000并发?还是我理解错了。
MiceRice 2013-11-14
  • 打赏
  • 举报
回复
这里问题,没环境测试都挺烦,第一个建议是: ◎ 检查Apache实际的处理线程数,最好是用:http://localhost/server-status 查看; 因为反向代理过程中,Apache的线程全程为一个请求服务,如果Apache线程数太低,你后面Tomcat有100个集群也白搭。 server-status 模块需要Load,该context也需要显式开启。
骑士的崛起 2013-11-14
  • 打赏
  • 举报
回复
引用 1 楼 yetaodiao 的回复:
windows下面做这个太。。。
测试,我就知道想知道下原因。
  • 打赏
  • 举报
回复
zxcvbnm11920 又来啦 windows下面做这个太。。。

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧