开发者社区 问答 正文

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

环境:
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高呢?希望有高手来解惑

展开
收起
落地花开啦 2016-06-02 17:21:59 4599 分享
分享
版权
举报
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    首先你得明白什么叫吞吐量,吞吐量一般指有效执行时间/总执行时间。一台机器的资源是有限的,你开个虚拟机本身就要消耗很大资源,且开多个Tomcat CPU的调度时间增加,有效执行时间减少,所以吞吐量降低,这个跟你单个mysql没有关系!

    2019-07-17 19:25:22 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等