Mon PC Ubuntu est utilisé pour des choses typiques:
La partition d'échange remplit plusieurs fonctions.
Il sert de RAM de "sauvegarde". En d’autres termes, si votre ordinateur manque de RAM, il utilisera la zone d’échange comme source temporaire de mémoire supplémentaire. Plus précisément, il "permutera" les éléments inutilisés de la RAM vers la zone de permutation afin de laisser de l'espace disponible aux applications qui en ont besoin à cet instant. Ce n'est pas idéal car le taux de transfert de données vers le disque dur est nettement inférieur à celui de votre RAM normale. En pratique, cela signifie qu'il est beaucoup plus lent à extraire des informations de la zone d'échange.
Il est utilisé lors de l'hibernation de l'ordinateur. L'hibernation implique de prendre une image du RAM dans son état actuel (comme une image ISO représente une image) et de l'enregistrer dans la zone d'échange. Il recharge ensuite cette image au redémarrage de l'ordinateur.
Pour être plus utile, la zone de swap doit être au moins (RAM * 1,5), bien qu’il soit recommandé d’en utiliser plus. Par exemple, sur mon système avec 3 Go de RAM, j'ai une zone d'échange de 7,2 Go.
Ceci est très proche de la même chose que cette question à propos de la “bonne” taille pour une partition de swap. La plupart des informations de mon réponse ici s'appliquent. En gros, si vous voulez passer en hibernation, vous voulez généralement que votre espace d'échange soit au moins égal à votre RAM, et à part un nombre rond comme 1. ou 2 Go est facilement suffisant. Parce que le swap est beaucoup plus lent que la RAM, si vous remplissez plusieurs giga-octets de swap, votre ordinateur est presque certainement devenu trop lent.
Il n’existe pas non plus de réel besoin d’une partition swap: les fichiers swap (disponibles sur les systèmes de fichiers linux traditionnels) offrent les mêmes performances et facilitent l’ajout de plus d’espace swap si vous décidez de ne pas en avoir assez.
ici une information très profonde sur le swap
certaines personnes disent le double de votre bélier, mais personnellement, je recommande ceci:
swap = 1,5 X Total Ram
Exemple :
si vous avez 2 Go de RAM -> swap = 1,5 x 2 = 3
P.D: Ubuntu Desktop utilise Swap to Hibernate (PC éteint, aucune alimentation requise, état du programme enregistré). Si le mode Veille prolongée est important pour vous, disposez de davantage d'espace d'échange que de dépassement de mémoire vive et d'échange.
La commande free
peut vous dire combien de swap vous utilisez. Par exemple sur cette machine:
$ free -m
total used free buffers cached
Mem: 1947 1863 84 312 758
-/+ buffers/cache: 792 1154
Swap: 4000 3 3997
me montre que j’ai 2 Go (1947 m) RAM et que le système en a utilisé la majeure partie. Toutefois, 312m sont utilisés pour les mémoires tampon d’E/S et le reste (758m) que le système a décidé de remplir avec le cache disque.
Le cache disque est intéressant car il utilise une mémoire rapide au lieu d'un disque lent pour son contenu. Le contenu peut être obtenu à partir du disque, mais il est conservé au besoin. Cela signifie également que 758 m de mémoire peuvent être récupérés en un instant si nécessaire, car le système sait qu'il peut rechercher ces données sur le disque.
C’est pourquoi une deuxième ligne indique que, s’il n’y avait ni mémoire tampon ni cache, la moitié de ma RAM (1154 m) serait disponible.
La troisième ligne montre que j'ai une partition de swap trop volumineuse (elle était là et ne faisait rien) dont 3 millions ont été utilisés. C’est un truc que le noyau ne s’attend vraiment pas à utiliser bientôt, il a donc été collé sur le "porche arrière".
Alors que free
vous donne l'instantané, vmstat
peut vous donner une image courante:
$ vmstat 10
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 3588 86236 316524 769132 0 0 14 13 126 81 4 1 95 0
0 0 3588 83872 316532 770512 0 0 0 20 264 1229 3 1 96 0
Il y a beaucoup d'informations là-bas, mais il est intéressant de noter qu'il n'y a pas de trafic d'échange (si) ou d'échange (donc). Ce qui signifie que je n'utilise pas l'échange du tout au cours des 10 dernières secondes.
J'ai un ordinateur portable avec un disque dur lent, mais relativement élevé RAM (8 Go). Sur cette configuration, je trouve qu'un lecteur d'échange est contre-productif pour les raisons suivantes:
La récupération d'applications est lente , ce qui est comparable au chargement de l'application à partir de zéro. Je préférerais un environnement qui réponde rapidement, même si cela signifie que je dois parfois fermer et recharger des applications, plutôt qu'un environnement qui m'arrête parfois de manière inattendue.
Si je voulais pouvoir hiberner, cela voudrait dire écrire beaucoup de données sur disque. Ce serait une consommation constante de la batterie si elle était faite de manière persistante (le comportement par défaut de swappiness 60), ou n’était fait qu’au moment de l’hibernation (en réduisant le swapiness), il faudrait alors beaucoup de temps pour hiberner. J'ai trouvé que suspendre pour être RAM au lieu de suspendre sur disque était plutôt satisfaisant. Il pourrait rester suspendu quelques jours et resterait suspendu beaucoup plus rapidement qu’une hibernation complète.
Parce que le disque dur est lent, je préfère garder 1 Go de RAM réservée au cache de disque , échangeant effectivement de la mémoire pour la vitesse. Cela garde ma machine en bon état, mais cela signifie que je ne peux utiliser que 7 Go de mes 8 Go de RAM pour des applications. Le logiciel que j'utilise pour y parvenir est un fork de earlyoom qui tue les anciens onglets du navigateur lorsque 88% de la RAM a été utilisée. Je dois parfois recharger d'anciens onglets de navigateur qui ont été supprimés.
Quand ce conseil ne s'appliquerait-il pas?
Si vous avez un disque dur rapide ou un disque SSD et que vous vous inquiétez moins de l'épuisement de la batterie, les inconvénients que j'ai décrits ci-dessus ne s'appliqueront pas. (Bien que les premiers disques SSD puissent avoir des problèmes d'usure, je pense que tous les disques SSD vendus depuis 2018 devraient convenir.)
Si votre ordinateur dispose de très peu de RAM , ou si vous souhaitez utiliser plusieurs applications gourmandes en mémoire en même temps, vous devrez peut-être utiliser swap pour obtenir votre travail est fait, quels que soient les inconvénients. C'était le principal cas d'utilisation du swap, avant que la mémoire ne commence à devenir moins chère.
Si vous avez réellement besoin de l'hibernation (vous souhaitez peut-être suspendre votre ordinateur portable et le rouvrir après quelques jours sans charge), vous avez besoin d'un lecteur d'échange. (recommandé au moins aussi grand que votre RAM).
Caveat:
Vous pouvez vérifier la zone d'échange utilisée et disponible à l'aide de la commande suivante:
$ cat /proc/swaps
Filename Type Size Used Priority
/dev/sda10 partition 7812092 16 -1