10 commentaires
As-tu regardé la taille de tes clés ? Si tu as des clés énormes, la sérialisation peut bloquer le thread unique de Redis.
La plupart des clés sont des petits JSON. Rien de massif.
Regarde du côté du slowlog. Ça te donnera les commandes exactes qui prennent du temps.
J'ai fait un SLOWLOG GET 10, et je vois beaucoup de KEYS *. C'est probablement ça.
Erreur classique ! KEYS est O(N), ça bloque tout le serveur. Remplace par SCAN immédiatement.
Exactement. SCAN permet une itération paginée sans bloquer le main thread.
Je vais refactoriser le code pour utiliser SCAN. Est-ce qu'il y a d'autres réglages au niveau de la conf redis.conf ?
Vérifie ton maxmemory-policy. Si tu es en allkeys-lru, ça peut provoquer des nettoyages fréquents.
Aussi, désactive le AOF si tu n'as pas besoin d'une persistance stricte, ça soulage pas mal l'I/O.
Merci, j'ai remplacé les KEYS et ajusté la politique de cache. La latence est redescendue en dessous de 1ms.
Laisser une réponse
Vous devez être connecté pour poster un message !
Mon instance
Redisaffiche des pics de latence réguliers sur les commandesGET. Le CPU est bas, mais le temps de réponse monte à 200ms par moments. Une idée sur la cause probable ?