5 votes

Contrôle de l'utilisation de la mémoire de tmpfs

Y a-t-il un moyen de limiter la quantité de RAM utilisée par tmpfs sans limiter la quantité de swap ?

La plupart des documentations disent que tmpfs size limitera la taille totale du fichier tmpfs partition et plus tard, il dira que cet espace est utilisé à la fois par la RAM et le SWAP. Puis il dit que la valeur par défaut est la moitié de votre RAM parce que si elle utilise toute la RAM, vous obtenez des erreurs fatales OOM. C'est déroutant.

j'aimerais qu'il utilise 1/4 de ma ram mais jusqu'à 3/4 du swap, par exemple.

8voto

grifferz Points 758

Pour autant que je sache, vous ne pouvez pas contrôler quelles parties du système de mémoire virtuelle (c'est-à-dire RAM ou swap) sont utilisées pour un tmpfs.

Cependant, il n'est pas vrai que la création d'un grand tmpfs provoquera des erreurs fatales OOM. Vous pouvez créer un tmpfs plus grand que votre total RAM+SWAP parce qu'aucune partie n'est réellement utilisée jusqu'à ce que vous mettiez des fichiers dans le tmpfs.

Quand vous faire mettre des fichiers dans le tmpfs, cela utilisera de la mémoire, mais seulement autant que les fichiers que vous avez mis dans le tmpfs. Si vous ne touchez pas à ces fichiers pendant une longue période et que le système a besoin d'utiliser la RAM plus qu'il n'a besoin de les conserver dans le cache tampon, ces fichiers seront en fait sauvegardés à partir du swap au lieu de la RAM.

Lorsque vos demandes sur le tmpfs deviennent une grande partie de la RAM, cela va affecter votre buffer cache (les choses cesseront d'être mises en cache en RAM parce qu'elles sont nécessaires pour les fichiers tmpfs). Au fur et à mesure que la demande augmente, elle va commencer à aller dans le swap. Finalement, lorsque vous n'avez plus de cache tampon, que tout votre swap est utilisé et qu'il y a encore plus de demandes de mémoire, alors et seulement alors vous commencerez à avoir des erreurs OOM.

Donc il est en fait sûr de spécifier un grand tmpfs pour /tmp tant que vous avez une quantité décente d'échange aussi. Vous dites que vous seriez d'accord pour qu'il utilise 25% de votre RAM et 75% de votre swap. Dans ce cas, disons que vous avez normalement 1G de RAM et 2G de swap. Je configurerais tmpfs à 1G et augmenterais un peu le swap, disons à 3G.

Si votre système est soumis à une pression de mémoire, la première chose qui va se produire est que les fichiers peu utilisés dans le répertoire /tmp finira par être soutenu par le swap au lieu de la RAM. Vous ne perdez pas toute votre RAM en créant un tmpfs de la même taille que la RAM.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X