Codis-Proxy高并发的问题
- Lingua principale
- Go
- Stelle
- 13.2k
- Fork
- 2.7k
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
你好:
我们的生产集群就是使用Codis作为Cahce层,目前出现了一个问题。
集群环境:
1. 5台物理机,120G内存,万兆网络,50物理核心
2. 每台7个主Redis,7个备Redis,2个Proxy
3. 客户端设置:(最大连接数2048,最大空闲连接50,最小空闲连接5)并发8个进程,一共3台服务器。
客户端使用JedisResourcePool,通过ZK连接到Codis的Proxy上,QPS总数是30W左右,Session连接是6W。
目前遇到的情况是客户端从JedisResourcePool获取连接的时候会超时,所以我们提高了客户端的最大连接数(2048-》4096),但是造成的结果是Session数量飙升到12W(附近波动),QPS却只有7W左右,每台Proxy负责的Session从原来5000加到1W5左右
我看了下源代码, 目前我怀疑是由于Proxy内对Router类的锁导致的。
我猜测,Proxy的设计是不是面向低并发,高吞吐的业务场景呢?
目前我们这种情况,是不是应该降低Session的数量,如果是的话,具体应该降低到多少Session/Proxy才行?
因为考虑到我们今年业务量可能会翻一倍,所以要能处理100WQPS的业务量,所以请求下帮助。
万分感谢!
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Direzione di ricerca
Iniziare con la classe Codis Proxy Router menzionata nel report e confrontare il suo comportamento di locking con le metriche fornite di connection, session e QPS. L’issue non identifica un test che fallisce né una modifica specifica al codice; per completarla sarebbe necessario determinare se la contesa su Router causa il timeout e documentare un fix validato o una raccomandazione di configurazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- go, java, redis
- Ambito
- backend, databases, performance
- Tipo di issue
- Bug
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 20/100