La mémoire affiche quatre-vingt-dix pour cent : est-elle pleine, ou en a-t-elle seulement l’air

La mémoire libre est de la mémoire gaspillée, donc un pourcentage élevé n’est pas en soi un signe de problème. La bonne question n’est pas combien elle est pleine, mais qui la retient.

AtlasPVE ·

Cette fiche répond à

  • proxmox ram pleine
  • proxmox utilisation mémoire élevée
  • proxmox zfs consommation ram
  • proxmox ballooning c’est quoi
  • combien de ram pour proxmox

Vous regardez le panneau et la mémoire est à quatre-vingt-dix pour cent. L’instinct est d’ajouter de la RAM tout de suite. La plupart du temps, ce n’est pas nécessaire.

La mémoire libre est de la mémoire gaspillée. Le système d’exploitation traite la mémoire inutilisée comme un cache et la rend quand elle est nécessaire. Un pourcentage élevé n’est donc pas en soi le signe d’une panne.

Sur Proxmox, deux sources supplémentaires brouillent ce tableau.

Première source : le cache de stockage

Si vous utilisez ZFS, il garde en mémoire les données qu’il lit pour un accès rapide, et cette part peut être importante. Il la libère sous pression. Mais jusque-là, elle apparaît comme « utilisée ».

Ce n’est pas une fuite, c’est la conception même. Sur un système qui relit sans cesse les mêmes données, ce cache est l’accélération la moins chère qui soit, et il réduit aussi l’usure du disque.

Le point subtil : quand il libère, il ne libère peut-être pas instantanément. Une demande soudaine de mémoire peut donc rencontrer un court délai. C’est pourquoi, dans les installations très serrées, il est raisonnable de plafonner ce cache ; mais faites-le en mesurant, pas dans la panique du « la mémoire se remplit ».

Deuxième source : la mémoire que retiennent les invités

Si vous avez donné huit gigaoctets à une machine virtuelle, cette machine peut sembler en retenir huit du côté du serveur même quand elle est inactive à l’intérieur. La raison est simple : la mémoire touchée une fois reste attribuée tant que l’invité ne sait pas la rendre.

La rendre ne fonctionne que si l’invité coopère. Si le composant qui le permet n’est pas présent dans l’invité, la mémoire que vous avez donnée est partie dans un seul sens. Si vous attendez le retour de la mémoire promise, assurez-vous d’abord que ce composant est installé.

La bonne question : pas combien elle est pleine, mais qui la retient

Le pourcentage ne dit rien en soi. La répartition qui compte est celle-ci : quelle part de ce remplissage vient de vos invités, et quelle part du serveur lui-même ?

Si ce sont les invités, la situation est normale ; ils utilisent la mémoire que vous leur avez donnée. Si c’est le côté serveur et que cela croît sans cesse, il y a là quelque chose à regarder.

Le vrai signal d’alerte n’est pas le pourcentage, c’est l’échange

Si le serveur s’est mis à utiliser l’espace d’échange, c’est un signal véritable. Quatre-vingt-dix pour cent de remplissage peut n’être aucun problème, mais un serveur qui échange en permanence est lent et use aussi son disque.

Le test : ne paniquez pas devant le pourcentage, agissez sur l’activité d’échange.

Trop promettre

Vous pouvez promettre à vos machines virtuelles plus de mémoire au total que le serveur n’en a réellement. Cela marche la plupart du temps, car elles ne culminent pas toutes en même temps.

Mais il existe une règle sans exception : n’incluez pas la part propre du serveur dans ce que vous promettez. Quand le serveur manque de mémoire, ce n’est pas une machine mais tout qui tombe d’un coup, panneau compris. Le partage entre invités peut être souple ; l’espace de respiration du serveur, non.

Ce que fait Atlas

Atlas n’affiche pas le graphique de mémoire comme un pourcentage unique, il le découpe en trois : ce que le serveur utilise lui-même, ce qu’utilisent les invités, et l’échange.

Et ce découpage se fait par calcul et non par supposition : la somme des invités est retranchée de la mémoire utilisée totale, et le reste compte comme la part du serveur. Vous répondez ainsi d’un coup d’œil à la vraie question ci-dessus : ce remplissage, ce sont mes machines ou le serveur lui-même ?

Un détail petit mais significatif : pour le plafond du graphique, c’est la dernière valeur connue de la mémoire totale qui est utilisée, pas celle du début de la série. La raison : sur de longues périodes la mémoire totale peut changer, et prendre l’ancienne valeur comme plafond montre le graphique autrement qu’il n’est. Ainsi, le jour où vous ajoutez de la RAM à la machine, le graphique ne continue pas de tracer l’ancien plafond et ne vous induit pas en erreur.

Sources

La documentation officielle de Proxmox. En anglais, et c’est elle qui a le dernier mot sur ce sujet.

Fiches liées

À quoi cela ressemble dans Atlas ?

Aller à la page produit