首页  >  问答  >  正文

java - 如何压测http服务(tomcat)的CPU

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

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

女神的闺蜜爱上我女神的闺蜜爱上我2670 天前1176

全部回复(5)我来回复

  • phpcn_u1582

    phpcn_u15822017-06-28 09:24:50

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

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

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

    回复
    0
  • PHP中文网

    PHP中文网2017-06-28 09:24:50

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

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

    回复
    0
  • 仅有的幸福

    仅有的幸福2017-06-28 09:24:50

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

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

    回复
    0
  • 大家讲道理

    大家讲道理2017-06-28 09:24:50

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

    回复
    0
  • 世界只因有你

    世界只因有你2017-06-28 09:24:50

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

    回复
    0
  • 取消回复