请教一个可能是 Tomcat 相关的问题

查看 5|回复 0
作者:volantRookie   
先说下大概情况,环境使用的 openjdk1.8 ,使用 springboot 开发的一个业务程序,没有微服务框架,测试机和服务机同是内网机器,网络延迟很低。现象是服务器的内存占用在 40%左右,CPU 占用在 30%左右,用 jmeter 压测,线程数分别开到 100 、300 、500 ,吞吐量一直在 30 多一点,内存和 CPU 占用也没有提升。正常的现象不是应该随着并发的提升,资源占用越来越高吗,为什么这个吞吐量一直上不去,服务器资源还有很大空闲。补充一点,我把压测的那一个接口业务内容都注释了,是一个空方法,没有数据库和其他的业务操作。
已经排查过的问题:
1.首先改的是 Tomcat 配置,改了 maxThreads=10000 ,maxConnections=10000 ,acceptCount=-1 。
2.后来网上搜到说是可能是 nginx 、tomcat 的 keepalive 配置不匹配有关,这里没有用 nginx 。
3.用 jprofiler 看到的情况是,线程不停地在加,但是大量的线程进入了 timed waiting 状态,后来用 jstack 命令看这些线程,没有显示出服务里边具体的代码行号,显示的是
  • waiting on java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject
    tomcat 的 taskQueue.poll 方法之后,后来用 netstat 去看有很多 tcp 连接在服务端口处于 timed waiting 状态

    感觉还是和 Tomcat 的配置有关,有没有懂这块的大佬,给个排查的思路,或者给个方向也行,谢谢啦
  • 您需要登录后才可以回帖 登录 | 立即注册

    返回顶部