发表于: 2017-06-02 23:57:55
1 1401
今日完成
下载并使用JMeter,windows打开{path}/bin/jmeter.bat即可运行
添加线程组,其中添加sampler的http request、查看结果树、聚合报告
下面给出大部分运行结果:
case1: server:localhost jetty;请求路径/profession,只是简单的发一个html页面,无其他操作,仅有tiles参与
1s 500*100压爆了,tps432 这个条件完全是压测我的电脑cpu
200*50正常 0%error 391tps
直到360*50 开始出现error
然后换50*360 发现tps到421有所提升并无error
加到100*300,电脑cpu90%,基本是压电脑性能了,tps415并无error
case1总结:同等请求数时相对于提高循环数提高线程数对server压力更大,tps相对降低,错误率相对较高,错误为Connection refused: connect
我这里差不多390的tps就是在烤cpu了,即简单的传回html数据不进行其他操作,应该是我的电脑性能找不到jsp性能瓶颈
case2: server:localhost jetty;请求路径/time,这是一个通过jsp中elFunction简单获取当前时间的页面,也用了tiles组合页面
刚好100*100直接压到极限,刚好0.57错误率,300tps,这似乎是一次偶然情况。之后再测了两次没有这个结果,不明原因
80*80情况好了太多 420tps,0error
300*50 392tps 0error
360*50 有error
结论:基本上来看,jsp的简单的elFunction对性能无影响
case3: server:localhost jetty;请求路径/,即首页,有4个从数据库get Student对象的对数据库的查询语句,并组合成一个list传给jsp
100*100 52tps,0error,电脑cpu使用率只有15%
500*100 没让它跑完,可以看到线程增加并没有引起error,tps也几乎不变,不过等待的时间大大增加了
100*500 几乎完全等于100*100
5s 1000*1000 tps维持50+,0error,电脑cpu使用率20%
2000*2000 与上面基本一致
10000*1000 电脑差点挂了,赶紧结束进程。。。
结论:似乎完全被数据库的插询效率卡住了性能的咽喉,error持续0%,cpu使用率也非常低,性能完全屈从于数据库的效率50tps
case4: server:云服务器 tomcat;请求路径/time
200*200 没让跑完,tps缓慢增加 26.9tps 0error 服务器cpu占用16%,内存30%
1000*100 前一分钟无error,tps缓慢增加,服务器cpu占用我看不出变化。。
2000*2000 15s后请求被大量抛弃Connection timed out: connect 因为抛弃请求缘故,tps居然达到了90+ putty卡死
1000*1 在处理完400线程后,开始出现error,tps10+不定
结论:服务器上的压测性能瓶颈似乎完全被线程数掌握,在1000线程数下开始出现error,1、3、100、1000的循环数并无太大区别(没有全贴出来)tps不知为何只有26左右,猜测不是因为带宽,服务器cpu也没跑满,不知道是因为什么限制,防火墙我尝试关闭过,不知道关干净没。
case5:server:云服务器 tomcat;请求路径/,有数据库查询
1000*1 tps5,前期请求被大量抛弃
后期并发数下降,error随之下降
500*2 error0,tps6(tps前期居然一度高达50+,怀疑是jmatter了)
800*2 前一分钟error还在0.3%,一分钟后请求被大量抛弃,tps都高了不少
结论:tps只有5了,并发数也降到800以下,数据库查询占用的时间使得处理速度大幅下降,并发数小幅降低
明日计划
正确加上memcache,继续压测
收获
JMeter的基本使用,压测的概念
Linux iptables的一些知识
无并发优化的项目被压测的一些情况
问题
1、我的服务器反馈的tps算正常吗,最低配的1核1G的云服务器,为什么我用top命令会看不到服务器cpu占用的变化
2、下一步nginx配两台WEB是什么意思,可以在同一服务器运行两个tomcat这样?还是要怎么解决
评论