tomcat集群为什么没有单一tomcat吞吐量大?

发布于 2021-11-27 17:34:07 字数 1080 浏览 961 评论 18

环境:
jdk8+mysql5.5+redis3.0.5
项目是spring+mybatis框架,使用shiro+redis做的集群session处理,
使用nginx1.8+tomcat7做的集群,jmeter进行的测试,
redis和nginx在ubuntu虚拟机中,mysql和tomcat在win10下。
cpu4770k,16g内存。

测试页面:登录页(get),登录操作(post,此操作只涉及到select * from user where username=#{username}这一条sql,且user表只有1条数据),获取用户信息(get,此操作只涉及select * from user一条sql)

mysql:
max_connections=1000
table_cache=4096
open-files-limit = 8192

连接池:

jdbc.pool.maxIdle=250  jdbc.pool.maxActive=500  redis.pool.maxTotal=500  redis.pool.maxIdle=10

jmeter:线程数500,循环次数3

1. 单一tomcat测试结果


2. 两个tomcat组成的集群结果

redis部分的查询我输出了一下时间,在几十ms范围内,不影响效率,

问题主要在mysql上,单一tomcat时,select * from user大约时间在10ms以内,tomcat集群时,这条sql的时间就变成了100-200ms甚至更多,请问各位大神这是哪里的问题?为什么2个tomcat的集群吞吐量没有1个tomcat高呢?希望有高手来解惑


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(18

看透却不说透 2021-11-30 10:56:19

连接池         <property name="testOnBorrow" value="true"/> 改成false试试

想挽留 2021-11-30 10:56:19

一台机器上布多个Tomcat集群反而拉低机器处理能力,当然没有多台机器搞集群好

柳若烟 2021-11-30 10:56:17

@jeffsui 运行测试的时候cpu最高在80%左右

归属感 2021-11-30 10:56:15

@车开源 确实在mysql,但是请问怎么配置mysql来让多个tomcat连接时速度快些呢?

爱你是孤单的心事 2021-11-30 10:56:15

一台机器你确定没有争抢资源的情况出现?

旧伤慢歌 2021-11-30 10:56:12

回复
1、优化那条SQL查询 2、单独部署一台数据库(这样可以更真实反映情况) 3、再根据网上分享的mysql优化配置(如加大缓存,加索引等),会有好大改观的。

千笙结 2021-11-30 10:56:10

这样的环境不严谨呢。我觉得问题不在Tomcat,而是在mysql

冬天旳寂寞 2021-11-30 10:56:01

@首席不加班 那你觉得我要是建立两个虚拟机,每个虚拟机一个tomcat这样测试合理么?

梅窗月明清似水 2021-11-30 10:55:16

回复
tomcat分开物理机最好

爱你是孤单的心事 2021-11-30 10:54:33

你tomcat集群都在同一台机器当然没有单个tomcat性能好

绝情姑娘 2021-11-30 10:54:32

引用来自“funmo创始人”的评论

是一直是这样,还是说时不时的出现?

北笙凉宸 2021-11-30 10:21:30

我在Ubuntu(i5-3230M)上压测PHP-FPM,因为i5-3230M只有4核心(超线程),所以无论你开5个还是10个PHP-FPM工作进程,结果都差不多,就算配置了监听不同端口的两个pool,性能也是不会提升的,反而可能降低,因为Nginx多了upstream分流操作,而处理器能力却是固定的.

水水月牙 2021-11-30 10:18:38

是一直都这样,期间调整了mysql最大连接数,jdbc连接池,都还是这样。对了连接池用的tomcat-jdbc

岁月打碎记忆 2021-11-30 08:37:29

@雨林神话 连接池参数设置成什么了?发看看。

绝情姑娘 2021-11-29 23:56:24

是一直是这样,还是说时不时的出现?

刘备忘录 2021-11-29 23:19:38

....一个机器搞什么集群?这是伪集群,一般用来开发测试模拟环境的

你就想吧 一个机器开的东西多了 能不慢?

勿忘初心 2021-11-29 19:52:11

@猪的暧昧 自己在家就1台电脑,怎么测试集群呢?

叹沉浮 2021-11-27 23:44:15

你用一台电脑,装上虚拟机? 你觉得性能能上来么。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文