java - 如何压测http服务(tomcat)的CPU
女神的闺蜜爱上我
女神的闺蜜爱上我 2017-06-28 09:22:50
0
5
1234

前提: 大家好,现在需要压测一台tomcat服务器,想找出应用的瓶颈在哪,但是在测试过程中,jvm资源占用的cpu一直还没到50%,mysql已经被拖垮了。

现在我想找出应用服务的瓶颈,多少并发时,cpu会被占用过高,请问怎么实现呢?
我想到的方法是:在代码层面上创建多个线程,不读写数据库,让cpu上去。请问可行不??
感谢~~

女神的闺蜜爱上我
女神的闺蜜爱上我

全部回复(5)
phpcn_u1582

一般来说Web应用的瓶颈都在数据库上,应用服务器(无论是Tomcat还是别的)负载过大的话,一般来说只要加服务器就能解决的。

如果希望降低成本,找出应用的瓶颈在哪,压测是有些窍门的,比如:

把mysql存储引擎改成blackhole,这样数据库就不会容易被轻易拖垮。

洪涛

如果 CPU 占用太多,是不是已经使用了数据库连接池,限制链接的创建。为了减少数据库的访问,某些更新少的数据是不是可以放缓存如 Redis,不需要每次都访问数据库去取数据。

简单压力的测试,我喜欢用 apache server 里的 ab,复杂的可以试试 JMeter,压力测试就比较容易分析找出问题在那。

仅有的幸福

jvm资源占用的cpu一直还没到50%,mysql已经被拖垮了

这怎么看都像是数据库操作方面的问题,比如 SQL 需要优化,或者需要加缓存以减少数据库操作。看不出与 Tomcat 有什么关系。

大家讲道理

mysql都挂了,应该不是tomcat瓶颈,你要查查sql是否都优化了,另外开启mysql统计,查查看是否有慢sql,是否有全表扫描,索引是否高效。另外有没有使用连接池对数据库做并发控制,mysql支持的并发跟cpu核心数有关。一般慢sql容易拖垮数据库

世界只因有你

一般系统瓶颈的话增加服务器数量、优化请求基本上都能解决,更大的瓶颈基本上都是在数据库链接上,按照你说的你是想要测试一下你的请求并发瓶颈,但是如果你不连接数据库进行测试,基本上是没什么效果的,对真实项目并没有什么帮助,获取的瓶颈并不是你真正的瓶颈

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板