Trouver les connexions qui gonflent la mémoire (output buffer, query buffer, maxmemory-clients)
RedisMémoireCommande
INFO clients
# Top 10 connections by tot-mem (tot-mem, omem, qbuf, id, addr, user, cmd, age):
redis-cli -h redis1 -p 6379 CLIENT LIST | awk '{for(i=1;i<=NF;i++){split($i,a,"="); f[a[1]]=a[2]} print f["tot-mem"], f["omem"], f["qbuf"], f["id"], f["addr"], f["user"], f["cmd"], f["age"]}' | sort -rn | head -10
CLIENT LIST TYPE pubsub
CONFIG GET client-output-buffer-limit
# Upper limit for the total memory of all clients (largest clients are closed when exceeded):
CONFIG SET maxmemory-clients 5%Ce que fait la commande
Trie les connexions par mémoire totale (tot-mem), output buffer (omem) et query buffer (qbuf) ; affiche les connexions pub/sub et les limites de buffer ; définit une limite supérieure globale pour la mémoire des clients.
Quand l'utiliser
Quand used_memory croît sans croissance des données, que mem_clients_normal paraît élevé, ou qu'un client pub/sub/MONITOR consommant lentement remplit la mémoire.
Attention
Un omem élevé désigne généralement un client qui lit lentement les résultats (grosse réponse KEYS/HGETALL, abonné pub/sub lent, MONITOR laissé ouvert). Quand maxmemory-clients est dépassé, les clients détenant le plus de mémoire sont fermés sans avertissement ; les liens réplica et master sont exclus mais les connexions applicatives peuvent tomber. Utilisez CLIENT NO-EVICT on pour les connexions critiques.