环境:
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
问题主要在mysql上,单一tomcat时,select * from user
大约时间在10ms以内,tomcat集群时,这条sql的时间就变成了100-200ms甚至更多,请问各位大神这是哪里的问题?
为什么2个tomcat的集群吞吐量没有1个tomcat高呢?希望有高手来解惑
首先你得明白什么叫吞吐量,吞吐量一般指有效执行时间/总执行时间。一台机器的资源是有限的,你开个虚拟机本身就要消耗很大资源,且开多个Tomcat CPU的调度时间增加,有效执行时间减少,所以吞吐量降低,这个跟你单个mysql没有关系!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。