Lorsque j'ouvre une application exigeant beaucoup de RAM (VirtualBox définie à 2 Go de RAM), un espace d'échange est généralement utilisé, en fonction des éléments que j'ai ouverts à ce moment-là.
Cependant, lorsque j'ai quitté cette dernière application, les 2 Go de RAM sont libérés, mais la même utilisation d'espace de swap reste.
Par exemple, à l'heure actuelle, environ deux heures après la fermeture de VirtualBox, j'ai 1,6 Go de RAM libre et 770 Mo en swap.
Comment puis-je dire à Ubuntu d’arrêter d’utiliser cet échange et de revenir à l’utilisation de la RAM?
performance
swap
ram-usage
jfoucher
la source
la source
Réponses:
Le fait que le swap soit alloué ne signifie pas qu'il est "utilisé". Bien que des programmes tels que System Monitor et Top affichent une partie de votre espace d'échange alloué (dans votre exemple, 770 Mo), cela ne signifie pas que le système active / désactive activement le système.
Pour savoir si un échange est en cours, vous pouvez utiliser la
vmstat
commande. Laissez-le fonctionner quelques secondes pour voussi
calmer et regarder les colonnes (swapin) etso
(swapout). Si rien ne se passe, il n'y a aucune raison d'être inquiet.Voici la sortie de l'exécution
vmstat 1
, où vous pouvez voir que ma machine n'échange pas du tout.Pourtant, ici,
top
vous pouvez voir que j'ai un espace d'échange alloué: -la source
Le noyau Linux sous-jacent Ubuntu "remplacera" automatiquement ces pages du disque vers la RAM selon les besoins, alors en général, je dirais que cela doit se faire naturellement.
Cependant, si vous sentez vraiment que vous devez le forcer (je vois un scénario dans lequel vous voudriez savoir que le système réagira plus tard), vous pouvez momentanément désactiver et réactiver le swap.
OU alternativement comme une seule ligne
Soyez prudent, car vous risqueriez de rendre votre système instable, surtout si sa mémoire vive est déjà insuffisante.
la source
Vous pouvez également définir votre valeur "swappiness" à partir de la valeur par défaut de 60. Ainsi, le swap ne deviendra pas si volumineux pour commencer. Pourquoi la valeur par défaut d’expédition est définie sur 60 alors que la valeur recommandée est 10 me laisse perplexe. De Ubuntu SwapFAQ :
En modifiant cette valeur sur 10 ou même sur 0, vous pouvez ajouter une augmentation de vitesse significative et perceptible à un système ancien avec un lecteur lent. Définir cette valeur sur 0 ne désactive pas l'échange pour les noyaux Linux 3.4 et inférieurs, mais avec la version 3.5+, vous voudrez utiliser la valeur 1 si vous souhaitez conserver le paramètre le plus bas *.
Je ne vois aucune raison de ne pas régler cette valeur sur 0, car tout ce qui arrive sur le disque est plus lent que la RAM. J'ai 8 cœurs virtuels, un SSD rapide et 8 Go de mémoire et mon échange est défini sur 0. À ce moment, j'ai 3 machines virtuelles en cours d'exécution, ma mémoire est utilisée de 7,1 Go sur 7,7 Go, mon échange utilisé est à seulement 576 Ko de 952MB et tous les systèmes fonctionnent correctement!
De Ubuntu SwapFAQ :
Vous trouverez ci-dessous des instructions de base pour vérifier le swappiness, vider votre swap et ramener le swappiness à 0:
Pour vérifier la valeur de swappiness:
Pour définir temporairement le swap sur 0 ( comme suggéré par SpamapS ):
Cela videra votre échange et transférera tout le swap dans la mémoire. Tout d’abord, assurez-vous de disposer de suffisamment de mémoire en consultant l’onglet Ressources de gnome-system-monitor, votre mémoire disponible devrait être supérieure à votre échange utilisé. Ce processus peut prendre un certain temps, utilisez gnome-system-monitor pour surveiller et vérifier les progrès.
Pour définir la nouvelle valeur sur 0:
Pour réactiver l'échange:
Pour définir définitivement swappiness sur 0:
sudoedit /etc/sysctl.conf
vm.swappiness = 0
sudo shutdown -r now
# redémarrer le système* Avec la version 3.5+ du noyau, le réglage de swappiness à 0 le désactive complètement et un réglage de 1 est recommandé si vous souhaitez utiliser l'algorithme de swappiness le plus bas. source: https://www.percona.com/blog/2014/04/28/oom-relation-vm-swappiness0-new-kernel/
la source
J'ai constaté que le vidage de la permutation peut être très utile sur les systèmes dotés de disques lents et de RAM limitée. Bien sûr, comme déjà mentionné, la façon de faire est de courir
sudo swapoff -a; sudo swapon -a
. Le problème ici est que si la RAM est insuffisante, cela causera toutes sortes de problèmes.J'ai écrit un script que j'appelle
toggle_swap
qui a fonctionné pour moi ces dernières années. Il vérifie qu'il reste suffisamment de RAM avant de désactiver le swap. C'est ici:la source
Après avoir passé du bon temps à balayer quelques jours, je suis parvenu à la conclusion que le noyau devrait être laissé à lui-même. Il sait ce qu'il fait et il est optimisé pour vous offrir la meilleure expérience.
À moins que vous ayez une très bonne raison de vouloir récupérer ce disque, je le laisserais.
la source
Les performances ne sont pas affectées si votre espace d'échange est occupé. La seule pénalité de performance est que les choses entrent / sortent du swap. Si rien n'est échangé / échangé, vous n'avez à vous soucier de rien.
la source