开发者社区> 问答> 正文

为什么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 4426 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

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

    2019-07-17 19:25:22
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Apache Tomcat 的云原生演进 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载