web-dev-qa-db-fra.com

Importance de la partition de swap

  • Quel est le but d'une partition de swap?
  • Comment savoir si j'ai juste assez de partition d'échange? Pas trop/peu.

Mon PC Ubuntu est utilisé pour des choses typiques:

  • Web (email, facebook, etc.)
  • Quelques films
  • le jeu est rare
34
lamcro

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.

15
richzilla

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.

7
RAOF

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.

4
hhlp

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.

2
msw

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:

  1. 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.

  2. 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.

  3. 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:

  • Certains des logiciels que nous laissons fonctionner longtemps (notamment le système d'exploitation et l'environnement de bureau) chargeront du code en mémoire qui ne sera plus jamais utilisé. Ces pages pourraient être déplacées pour permuter et n'auront jamais besoin d'être extraites, évitant ainsi les inconvénients que j'ai mentionnés plus tôt. Pour cette raison, je crée parfois un fichier d'échange de petite taille de 512 Mo ou de 1 Go, et laisse les pages inutilisées de la mémoire être permutées. Cela me laisse juste un peu plus RAM pour les applications. (Nécessaire: une technique permettant de mesurer le taux de désabonnement de permutation afin d’ajuster la taille de ce fichier.)
0
joeytwiddle
  • La zone d'échange est la partie de l'espace disque utilisée pour prendre en charge la mémoire RAM à espace limité. La taille de RAM étant limitée, certaines applications nécessitent plus de RAM que l'espace RAM disponible. Dans ce cas, cet espace d'échange est également appelé mémoire virtuelle utilisée pour prendre en charge la RAM.
  • Sa vitesse est inférieure à celle de la RAM. Lorsque nous exécutons une application volumineuse, la partie la moins utilisée récemment de cette application est remplacée par la zone de permutation du disque dur. Elle est permutée de la zone de permutation au besoin. Cela donne au système d'exploitation le sentiment d'avoir simplement plus de RAM qu'en réalité.
  • C'est une partition dédiée sur le disque dur créée lors de l'installation du système d'exploitation.
  • Il est bon de créer une zone d'échange double de la taille de la RAM.
  • 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
    
0
Vijesh