CodisLabs / codis

Proxy based Redis cluster solution supporting pipeline and scaling dynamically
MIT License
13.15k stars 2.69k forks source link

codis性能问题 #687

Closed shamily-jdd closed 8 years ago

shamily-jdd commented 8 years ago

环境:5个app, 一个proxy, 两组group每group分别有一个matser、slave, (slot 为平均分给了两组group) 操作:简单的string 结构的set 和get操作tps大概在1.5W左右 (key和value分别为10个字符) 操作:5个app直接连接其中一个master进行string 结构的set 和get操作tps达到3W多(key和value分别为10个字符) 问题:我再增加app或者proxy后TPS并没有上, 我猜想是不是有一个公共资源导致在增加app和proxyTPS并没有上。

yangzhe1991 commented 8 years ago

没太看懂你的问题……性能问题你先看看 #656 ?

shamily-jdd commented 8 years ago

@yangzhe1991

环境:codis部署方式为1个proxy, group1的slot 为 0---512 一个master, 一个slave, group2 slot 为513---1023 一个master和一个slave, ZK只有一台 压测:通过loadrunner同时压5个JAVA应用程序用, 用jodis对codis进行的string 结构做set操作,key和value均为10个字符(压测机和带宽肯定不会是瓶颈)

结果:压测出来的TPS为1.5W左右

压测1:在上面的环境上再增加一个proxy,TPS和响应时间 均没有变化 增加一个JAVA APP ,TPS和响应时间也没有变化

问题: 我理解增加APP和PROXY性能应该会增加,我想性能没有增加,是不是CODIS有一个依赖的公共资源成为了瓶颈。

spinlock commented 8 years ago

能给出详细的测试过程和测试代码么,以及测试过程中各个资源的利用率。如 #656 一样。

这对我们解决你的疑问以及回答之后的 issue 都有帮助。

spinlock commented 8 years ago

proxy 本身是无状态的,在不发生状态改变的情况下,不存在对公共资源的互斥访问,很多情况下性能不能打满,或者扩展性不能提升,是系统自己配置问题造成的,与 codis 关系并不大。

yangzhe1991 commented 8 years ago

你一共有几台机器?增加一个Proxy的意思是增加一个机器还是原有的机器新开一个进程?

shamily-jdd commented 8 years ago

@yangzhe1991 是新增加了一个进程,因为CPU没有打满,所以又加一个proxy,

我用5个java app跳过proxy,直接连接codis-server,TPS可以达到3W

yangzhe1991 commented 8 years ago

所以建议你看下 #656 ……

shamily-jdd commented 8 years ago

@yangzhe1991 嗯 好的,谢谢