4 votes

Pourquoi certains processus utilisent-ils le swap et d'autres non?

Je rencontre de temps en temps quand je travaille intensément que mes systèmes (Ubuntu 13.10) se figent. Le syslog indique qu'un processus a dû être tué en raison d'une pénurie de mémoire.

Processus tué 4693 (chromium-browse) total-vm : 1386284 ko, anon-rss : 31688 ko, file-rss : 3424 ko

Cela se produit même si mon swap est presque vide. J'ai 4 Go de RAM et une partition Swap de 4 Go.

Top indique :

KiB Mem : 3932056 au total, 2828880 utilisés
KiB Swap : 4079612 au total, 332492 utilisés,

Donc beaucoup d'espace disponible. Mais j'ai découvert que certains processus n'utilisent pas du tout le swap. Ils semblent consommer toute ma RAM physique sans même envisager d'échanger certaines pages sur le disque. J'ai utilisé la colonne SWAP de "top" pour vérifier l'utilisation du SWAP par processus.

Il s'agit par exemple du navigateur web Chromium et de VirtualBox. D'autres, comme Firefox, Netbeans, etc., font du swap.

Alors qui "décide" quel processus fait du swapping et lequel ne le fait pas ? D'après ce que je comprends, c'est le noyau qui s'en charge, car du point de vue de l'application, la mémoire est de la mémoire sans faire de distinction entre le swap et la RAM physique. Est-ce vrai ou est-ce que les développeurs de Chromium ont configuré l'application pour n'utiliser que la RAM physique ?

Merci pour votre aide !

1voto

Panther Points 96601

Je pense que votre "problème" concerne VirtualBox.

Selon le Manuel de VirtualBox

Mémoire de base

Cela définit la quantité de RAM qui est allouée et donnée à la VM lorsqu'elle fonctionne. La quantité de mémoire spécifiée sera demandée au système d'exploitation hôte, elle doit donc être disponible ou rendue disponible en tant que mémoire libre sur l'hôte lors de la tentative de démarrage de la VM et ne sera pas disponible pour l'hôte pendant que la VM fonctionne.

J'ai trouvé des commentaires similaires sur les forums de VirtualBox (bien qu'ils n'étaient pas aussi utiles).

Voir: https://forums.virtualbox.org/viewtopic.php?f=2&t=50179

Je suppose donc que le module noyau de VirtualBox alloue de la mémoire libre à l'invité mais ne prend pas la peine d'informer l'hôte. Ainsi, lorsque vous regardez la RAM libre (avec des outils comme free -m), vous semblez avoir suffisamment de mémoire MAIS ... parce que le module noyau n'informe pas le système d'exploitation hôte, l'hôte ne peut pas gérer correctement le swap, et vos applications plantent ensuite en raison d'un manque de mémoire (libre ou swap).

Je vous suggère de signaler un bogue, mais, je suppose qu'il serait clos comme "ne sera pas corrigé"

D'après le fil de discussion sur les forums de VirtualBox lié au commentaire de Tim:

Pour répondre à votre question sur si VBox peut ou non utiliser le swap, non, rien d'autre que le système d'exploitation ne peut le faire. Le swap n'est pas une mémoire réellement utilisable.

0voto

Elliott Frisch Points 2818

Le noyau Linux "décide" de cela. Il le fait avec un paramètre ajustable appelé swappiness.

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