En fait, dans un conteneur OpenVZ, le "used" d'un "free -m" va correspondre au "privvmpages", qui est la quantité de mémoire allouée (en pages de 4Kio), sans pour autant être nécessairement utilisée (la mémoire physique utilisée en pratique va plutôt être indiquée par oomguardpages [quantité de mémoire physique utilisée qui va faire que, au delà d'un certain seuil, les processus vont commencer à être tués] ou physmpages, qui ne vont en effet même pas varier d'1Mo en arrêtant rsyslog... pour une VM telle que je l'ai décrite, exim4-light, sshd, puppet et rsyslog, il y a ~19Mio de RAM physique occupée... mais significativement plus qui a été allouée). Les buffers et les caches ne sont pas virtualisés en tant que tels dans la VM : ils n'apparaissent "qu'en gros", sur l'hôte, lorsqu'on y fait un "free -m" (enfin, une partie apparaît aussi dans les beancounters, pour ce qui est des buffers de sockets et caches de système de fichiers, mais je ne pense pas que ça recouvre tout ceux qu'on trouve dans la mémoire de la machine).
Le souci étant qu'à allouer moins de ressources de l'hôte à la VM que ce qui est alloué par un "privvmpages", si une application se met à utiliser cette mémoire, elle peut planter lamentablement... À ce sujet, la doc d'OpenVZ conseille d'allouer du "privvmpages" en accord avec les ressources réelles de la machine.
Aussi, à partir du moment où une application commence à allouer beaucoup de mémoire, dans un conteneur, c'est gênant, quand bien même elle ne l'utilise pas en pratique... D'où mon désarroi face à rsyslog... Si je l'utilise, soit je réserve trop de RAM pour les VM, soit je joue avec le feu...
[^] # Re: Conso de rsyslog
Posté par Aefron . En réponse au journal Debian Lenny, rsyslog et les conteneurs : de mes maniaquerie, radinerie et indigence. Évalué à 3.
Niveau mémoire résidente (RSZ, à un "ps aux"), rsyslogd est bien tout petit (~1Mio)...
Pour les buffers et les caches, ils ne sont pas virtualisés à la vue de la VM, et restent à "0" tout le temps, à un "free -m".
Sur une machine "normale", ça me fait comme toi : ~1Mio de différence... mais dans le conteneur, j'obtiens :
$ echo && free -m && echo ; sudo invoke-rc.d rsyslog stop && echo ; free -m && echo ; sudo invoke-rc.d rsyslog start && echo ; free -m
total used free shared buffers cached
Mem: 256 45 210 0 0 0
-/+ buffers/cache: 45 210
Swap: 0 0 0
Stopping enhanced syslogd: rsyslogd.
total used free shared buffers cached
Mem: 256 28 227 0 0 0
-/+ buffers/cache: 28 227
Swap: 0 0 0
Starting enhanced syslogd: rsyslogd.
total used free shared buffers cached
Mem: 256 45 210 0 0 0
-/+ buffers/cache: 45 210
Swap: 0 0 0
En fait, dans un conteneur OpenVZ, le "used" d'un "free -m" va correspondre au "privvmpages", qui est la quantité de mémoire allouée (en pages de 4Kio), sans pour autant être nécessairement utilisée (la mémoire physique utilisée en pratique va plutôt être indiquée par oomguardpages [quantité de mémoire physique utilisée qui va faire que, au delà d'un certain seuil, les processus vont commencer à être tués] ou physmpages, qui ne vont en effet même pas varier d'1Mo en arrêtant rsyslog... pour une VM telle que je l'ai décrite, exim4-light, sshd, puppet et rsyslog, il y a ~19Mio de RAM physique occupée... mais significativement plus qui a été allouée). Les buffers et les caches ne sont pas virtualisés en tant que tels dans la VM : ils n'apparaissent "qu'en gros", sur l'hôte, lorsqu'on y fait un "free -m" (enfin, une partie apparaît aussi dans les beancounters, pour ce qui est des buffers de sockets et caches de système de fichiers, mais je ne pense pas que ça recouvre tout ceux qu'on trouve dans la mémoire de la machine).
Le souci étant qu'à allouer moins de ressources de l'hôte à la VM que ce qui est alloué par un "privvmpages", si une application se met à utiliser cette mémoire, elle peut planter lamentablement... À ce sujet, la doc d'OpenVZ conseille d'allouer du "privvmpages" en accord avec les ressources réelles de la machine.
Aussi, à partir du moment où une application commence à allouer beaucoup de mémoire, dans un conteneur, c'est gênant, quand bien même elle ne l'utilise pas en pratique... D'où mon désarroi face à rsyslog... Si je l'utilise, soit je réserve trop de RAM pour les VM, soit je joue avec le feu...