Contexte
Le check Memory SSH va récupérer des informations concernant la mémoire vive et la mémoire swap de votre machine tel que le pourcentage utilisé et le top 5 des processus consommant le plus de mémoire. Contrairement aux autres checks, le statut de celui-ci possède 2 façons d'être modifié. Soit votre mémoire ram est trop élevé, soit votre swap est trop élevé. Le check est donc décomposé en "sous check" qui n'auront pas le même statut, le statut final est le plus mauvais des deux.
Méthode de calcul de la mémoire consommée
La mémoire utilisée (used) est différente de la mémoire consommée (consumed) que nous utilisons pour la comparaison avec les seuils. En effet la mémoire d'un serveur Linux peut être utilisée par le système, mais pas consommée, car celle-ci sera gardée en cache par le système. De cette manière, le serveur pourra piocher dans ce cache si besoin.
Donc, bien que la mémoire utilisée soit très proche de la mémoire totale du serveur, le serveur peut toujours disposer de mémoire pour son système et les applications. Nous souhaitons donc ne pas envoyer d'alerte inutile, car le serveur peut sembler saturé, alors qu'il dispose encore de plusieurs Go de RAM présents dans le cache par exemple.
Il est également important de noter que la commande free utilisée lors de la récupération des informations de mémoire du serveur a changé depuis la version 3.3.9. La version plus récente permet facilement de calculer la mémoire consommée réellement par le serveur via la mémoire totale moins la mémoire available (ajoutée dans la commande mise à jour). L'ancienne version ne dispose pas de la mémoire available, il faut se baser sur la mémoire buffed et cached.
La sonde Memory calcule donc la mémoire consommée comme telle :
- free < 3.3.9 : consumed = used - buffed - cached
- free > 3.3.9 : consumed = total - available
La sonde saura s'adapter suivant la version de la commande free.
Exemple
Exemple de résultat
Données et métriques
Données
| Donnée | Description | Valeur par défaut |
|---|---|---|
| MEMORY_CRIT | Définit le pourcentage de mémoire ram utilisée à partir duquel le check passe en critique | 95 |
| MEMORY_WARN | Définit le pourcentage de mémoire ram utilisée à partir duquel le check passe en avertissement | 90 |
| SWAP_CRIT | Définit le pourcentage d'utilisation swap à partir duquel le check passe en critique | 90 |
| SWAP_WARN | Définit le pourcentage d'utilisation swap à partir duquel le check passe en avertissement | 70 |
| SWAP_CRIT_WHEN_HIGH_PHYSICAL_MEMORY | Définit le pourcentage d'utilisation swap à partir duquel le check passe en critique si la mémoire ram est à plus de 90% | 20 |
| SWAP_WARN_WHEN_HIGH_PHYSICAL_MEMORY | Définit le pourcentage d'utilisation swap à partir duquel le check passe en avertissement si la mémoire ram est à plus de 90% | 15 |
Métriques
| Nom de la métrique | Description |
|---|---|
| cached | Quantité de mémoire cache (en %) |
| buffered | Quantité de mémoire tampon utilisée (en %) |
| consumed | Quantité de mémoire consommée (en %) |
| used | Quantité de mémoire totale utilisée (en prenant en compte le cache et la mémoire tampon) (en %) |
| swap_used | Quantité de mémoire swap utilisée (en %) |
| swap_free | Quantité de mémoire swap libre (en %) |
| buffered_abs | Quantité de mémoire buffée (en KB) |
| used_abs | Quantité de mémoire utilisée (en KB) |
| cached_abs | Quantité de mémoire cache (en KB) |
| consumed_abs | Quantité de mémoire consommée (en KB) |
| free_abs | Quantité de mémoire non utilisée (en KB) |
| total_abs | Quantité totale de mémoire ram (en KB) |
| swap_total | Quantité totale de mémoire swap (en KB) |
| swap_free_abs | Quantité de mémoire swap libre (en KB) |
| swap_used_abs | Quantité de mémoire swap utilisée (en KB) |
