Redis - surveillance de l'utilisation de la mémoire
Je suis actuellement en train de tester l'insertion de clés dans une base de données Redis (locale).
J'ai plus de 5 millions de clés et je viens de 4GO de RAM, donc à un moment j'ai vraiment atteint leur capacité de RAM et swap remplir (et mon PC va vers le bas)...
Ma problématique : Comment puis-je faire de la surveillance de l'utilisation de la mémoire sur la machine qui a le Redis, et dans cette façon d'alerte non plus d'insérer certaines touches dans le Redis ?
Grâce.
OriginalL'auteur kozher | 2011-06-23
Vous devez vous connecter pour publier un commentaire.
Concernant l'utilisation de la mémoire, je vous conseille de regarder le redis.io FAQ et cet article sur utilisation de redis comme un cache LRU.
Vous pouvez plafonner l'utilisation de la mémoire via le maxmemory paramètre de configuration, auquel cas, une fois la limite de la mémoire est atteinte, toutes les demandes d'écriture échoue avec une erreur, ou vous pouvez définir la maxmemory-politique de allkeys-lru, par exemple, pour remplacer le moins récemment utilisé des données sur le serveur avec des trucs que vous devez actuellement, etc. Pour la plupart des cas d'utilisation que vous avez suffisamment de souplesse pour gérer ces problèmes grâce à une bonne config.
Mon conseil est de garder les choses simples et de gérer ce problème par le biais de la configuration du serveur redis, plutôt que d'introduire une complexité supplémentaire par le biais de l'os au niveau de la surveillance ou de la comme.
OriginalL'auteur Hristo
La mémoire est une ressource critique pour le Redis performance. La mémoire utilisée définit le nombre total d'octets alloués par le Redis à l'aide de son allocateur (standard libc, jemalloc, ou une alternative allocateur comme tcmalloc).
Vous pouvez recueillir tous l'utilisation de la mémoire de données de mesures de pour une Redis instance en cours d'exécution “info de la mémoire”.
Parfois, quand Redis est configuré avec pas de mémoire max limiter, l'utilisation de la mémoire finira par atteindre la mémoire système, et le serveur va commencer à jeter “de Mémoire” des erreurs. À d'autres moments, Redis est configuré avec un max de limite de mémoire mais noeviction politique. Ce serait provoquer le serveur de ne pas expulser toutes les clés, l'empêchant ainsi de toutes les écritures jusqu'à ce que la mémoire est libérée. La solution à ces problèmes serait la configuration Redis avec max de la mémoire et de certains de la politique d'expulsion. Dans ce cas, le serveur commence à expulser les touches à l'aide d'expulsion de la politique d'utilisation de la mémoire atteint le max.
Mémoire RSS (Resident Set Size) est le nombre d'octets que le système d'exploitation a alloué à Redis. Si le rapport " memory_rss’ à ‘memory_used’ est supérieur à ~1.5, alors cela signifie une fragmentation de la mémoire. La fragmentation de la mémoire peut être récupéré par le redémarrage du serveur.
INFO
command & obtenir la notification: medium.com/@liesislukas/...OriginalL'auteur VISHAL KUMAWAT
Il y a un bon utilitaire Unix nommé vmstat. C'est comme en haut, mais en ligne de commande, de sorte que vous pouvez obtenir de l'utilisation de la mémoire et d'être préparé avant de vous le système est à l'arrêt. Vous pouvez également utiliser
ps v PID
pour obtenir cette information sur des processus spécifiques. Redis PID est peut être récupéré de cette façon:pidof redis-server
OriginalL'auteur AlexR