CodisLabs / CodisLabs/codis

Codis-Proxy高并发的问题

Aperta
#1,463 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
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

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.