Nous avons intégré un système Linux sans échange.
Nous devons actuellement sonner l'alarme lorsque le pourcentage d'utilisation de la mémoire augmente au cours d'une période de trois ans. Et redémarrez lorsque le pourcentage d'utilisation de la mémoire augmente au-dessus d'un seuil (plus élevé).
Pourquoi nous voulons le faire: si certains programmes fuient, nous pouvons faire un redémarrage de sécurité, avant que le noyau ne commence à tuer nos processus (ce qui peut entraîner une corruption ou une indisponibilité des données).
Mais nous avons un problème:
Comment compter l'utilisation de la mémoire -% qui peut être utilisée pour notre objectif?
Nous avons essayé de compter l'utilisation de la mémoire en utilisant les valeurs de / proc / meminfo:
/ # cat /proc/meminfo
MemTotal: 126744 kB
MemFree: 58256 kB
Buffers: 16740 kB
Cached: 31308 kB
SwapCached: 0 kB
Active: 37580 kB
Inactive: 24000 kB
Sans succès:
(MemTotal - MemFree)
n'est pas utilisable, car il contient par exemple des caches.
(MemTotal - MemFree - Buffers - Cached)
n'a pas ignoré l'effet de Inactive
. Il donne donc également des valeurs d'utilisation de la mémoire trop importantes.
(MemTotal - MemFree - Buffers - Cached - Inactive)
est inutilisable, car le résultat peut être négatif.
Nommez-le comme alert.sh et exécutez la commande:
chmod +x alert.sh
Configurer un cron pour exécuter ce script toutes les 10 minutes
Assurez-vous de remplacer «512» par la mémoire totale de votre serveur en Mo et «[email protected]» par l'adresse e-mail réelle. Cela enverra une alerte par e-mail chaque fois que l'utilisation de la mémoire dépasse 95% et redémarrera le service "nom_service" s'il atteint 90%
la source
Vous pouvez utiliser un script shell en cron avec la commande free pour surveiller la mémoire et agir en fonction de ses valeurs. Par exemple, pour surveiller la mémoire RAM:
Au lieu de faire écho à la sortie, vous pouvez évaluer les valeurs aux limites que vous souhaitez et envoyer, redémarrer ou quelle que soit l'action que vous souhaitez:
Ensuite, vous l'ajoutez à crontab pour l'exécuter dans les intervalles souhaités.
la source
un autre utilitaire utile du paquet sysstat est sar.
Pour des informations sur la mémoire, utilisez:
Je pourrais certainement utiliser plus de RAM sur cette boîte.
la source