web-dev-qa-db-fra.com

J'ai 16 Go de RAM. Ai-je besoin d'un échange de 32 Go?

J'ai lu à plusieurs reprises que la règle de base en matière d'espace d'échange consiste à doubler la quantité de RAM physique. Cependant, 32 Go semble BEAUCOUP. Ai-je besoin de ça? Ai-je besoin de tout avec cette grande quantité de RAM physique?

271
Tamás Szelei

Cela dépend entièrement de ce que vous prévoyez de faire avec la machine. Par exemple, s'il s'agissait d'un serveur SAP, alors oui, j'ajouterais un swap de 32 Go (nous avons des boîtes au travail avec un swap de 128 Go et un swap de 32 Go). Si vous manipulez des images et des vidéos volumineuses, il est logique de procéder à un petit échange. 32 Go est probablement exagéré.

Cependant, je ne dirais pas zéro swap.

Dans le cas improbable où vous manquerez de RAM - peut-être en ouvrant un gros fichier, un onglet long dans Firefox, peu importe, dans ce cas, votre tueur de MOO du noyau lancera et commencera à tuer applications pour récupérer de la mémoire. Dans ces circonstances, il est tout à fait possible que vous perdiez des données lorsque des applications sont supprimées. Cependant, si vous avez un peu d'échange, le système continue, récupérant l'échange et permettant au système de continuer. Le système ralentit lorsque des échanges importants se produisent, vous remarquez et enquêtez avant que tous les échanges ne soient épuisés. Aussi le disque est très bon marché, alors pourquoi ne pas avoir swap?

Toute personne qui dit "vous n'avez pas besoin d'échange" sans vous demander ce que vous faites réellement avec votre ordinateur fait des suppositions. Même si vous ne faites que très peu de choses avec votre ordinateur qui consomme de la RAM, il est toujours préférable de poser des questions sur ce que vous envisagez de faire avec cet ordinateur avant de décider de façon irréfléchie que vous n'avez pas "besoin" d'échange. À mon humble avis

185
popey

Voici une très bonne recommandation de RedHat: Espace d'échange système recommandée

Un extrait du même lien:

Dans les années précédentes, la quantité recommandée d'espace de swap augmentait linéairement avec la quantité de RAM dans le système. Mais comme la quantité de mémoire dans les systèmes modernes a augmenté pour atteindre des centaines de gigaoctets , il est maintenant reconnu que la quantité d'espace de swap dont un système a besoin est fonction de la charge de travail de la mémoire exécutée sur celui-ci. système. Toutefois, étant donné que l’espace de swap est généralement désigné au moment de l’installation et qu’il peut être difficile de déterminer à l’avance la charge de travail mémoire d’un système , il est recommandé de déterminer l’échange de système à l’aide du tableau suivant.

Tableau actuel (à partir de décembre 2017):

Amount of RAM in the system   Recommended swap space         Recommended swap space 
                                                             if allowing for hibernation
---------------------------   ----------------------------   ---------------------------
2GB of RAM or less            2 times the amount of RAM      3 times the amount of RAM
2GB to 8GB of RAM             Equal to the amount of RAM     2 times the amount of RAM
8GB to 64GB of RAM            At least 4 GB                  1.5 times the amount of RAM
64GB of RAM or more           At least 4 GB                  Hibernation not recommended

Table originale:

Amount of RAM in the System     Recommended Amount of Swap Space
4GB of RAM or less              a minimum of 2GB of swap space
4GB to 16GB of RAM              a minimum of 4GB of swap space
16GB to 64GB of RAM             a minimum of 8GB of swap space
64GB to 256GB of RAM            a minimum of 16GB of swap space
256GB to 512GB of RAM           a minimum of 32GB of swap space 
242
ssapkota

Argh. Les réponses à ce message sont tellement fausses et cela apparaît comme l'un des premiers résultats d'une recherche Google pour "Combien de swap?"

Premièrement, un bon point de référence est le buntu Swap FAQ

Cette FAQ fait ressortir un point important que personne ne mentionne ici, à savoir (c'est moi qui souligne)

Parfois, un programme volumineux (comme OpenOffice, Neverwinter Nights ou un éditeur vidéo) oblige le système tout entier à avoir besoin de plus de mémoire. Un nombre important de pages utilisées par ces programmes volumineux lors de son démarrage peuvent uniquement être utilisés pour l’initialisation puis ne plus jamais être utilisés. Le système peut échanger ces pages et libérer de la mémoire pour d'autres programmes ou même pour le cache de disque . Dans ces cas, l’échange sera utilisé pour aider le système à gérer toute charge supplémentaire.

Donc, swap n'est pas seulement pour l'hibernation! Cette activité, échanger des pages inutilisées, peut être bénéfique dans certains scénarios et préjudiciable dans d'autres. Bénéfique, car le système peut libérer de la mémoire que le système peut utiliser ailleurs, mais il est préjudiciable lorsque cet échange est trop agressif et remplace les pages que vous souhaitez réellement. Cela est particulièrement vrai sur un système de bureau où les applications peuvent rester inactives pendant de longues périodes, mais l'utilisateur attend toujours des performances immédiates pour le ramener à la vie. Le contrôle de son agressivité est appelé swappiness

Le swap Ubuntu FAQ décrit légèrement cette question sous Qu'est-ce que swappiness et comment puis-je le changer? La valeur par défaut sur un système Ubuntu est 60, tandis que le FAQ recommande une valeur de 10 pour un ordinateur de bureau.

Donc, je dirais qu'il est généralement très important de ne pas avoir un système avec absolument aucun espace d'échange, comme certaines personnes le recommandaient, à moins que vous ne sachiez très précisément scénarios d’utilisation pour votre système et sont très conscients des conséquences que cela pourrait avoir. (Personnellement, il n’existe aucune situation dans laquelle je lancerais un système sans échange.) Dans un scénario de mémoire insuffisante sans échange, le système commencera à mettre fin aux processus (généralement celui qui a provoqué le MOO).

58
brent

Probablement pas. Si vous envisagez de mettre votre ordinateur en veille prolongée (suspension sur disque), vous aurez besoin d'au moins 16 Go. Si vous n’êtes pas en veille prolongée, il suffit de laisser quelques gigaoctets pour l’échange (4 à 8 max.)

25
bandi

Par expérience, je peux dire ceci:

Pour ce que j'ai vu utiliser 4 Go de RAM pendant 3 ans, Ubuntu a eu une utilisation d'échange d'environ 60 Mo, mais uniquement lors de tâches très intensives. Il y a quelques semaines, j'ai commencé à utiliser un ordinateur doté de 16 Go de RAM et l'utilisation de l'échange est restée à 0% depuis toujours. J'ai effectué plusieurs compilations, rendu vidéo et autres tâches intensives. Il n'y a jamais eu de changement de swap. Pas même un changement de 1Ko.

Fondamentalement, dans Ubuntu, plus vous avez de mémoire RAM, moins vous aurez de chances d'utiliser ou de devoir échanger vos données pour n'importe quelle tâche. 16 Go de RAM, ou même 8 Go de RAM est plus que suffisant. Je l'ai fait avec les 16 ordinateurs PC Virtualbox de 16 Go (chacun entre 1 Go et 2 Go de RAM). J'ai compilé et rendu une vidéo 720p et même dans ces conditions, l'échange n'a pas changé.

Cela dit, la règle de deux fois plus de mémoire RAM ne devrait pas s'appliquer aux systèmes basés sur Linux, encore plus si vous avez plus de mémoire. Vous devez toutefois avoir la même taille d'échange que celle de votre bélier ou si vous envisagez d'hiberner, car le processus d'hibernation saisit tout le bélier et le met en swap. C'est pourquoi vous avez besoin d'une taille minimale égale à la taille de votre bélier. pour l'échange.

L'autre détail est que certaines applications (pas toutes) forceront toujours à lire à partir de swap. Donc, avoir un peu, c'est bien. Désactiver complètement est très mauvais dans le cas où vous arriverez à manquer de mémoire ou de MOO. À ce stade, si vous n’avez pas d’échange, il n’est pas possible pour le noyau d’échanger des utilisations d’applications RAM différentes et il finira par tuer les applications les moins utilisées.

Si cela vous aide dans la prise de décision sur votre ordinateur de bureau, après avoir mis à jour cette réponse depuis plus de 4 ans, j'ai utilisé un PC RAM de 16 Go, 32 Go et maintenant de 64 Go. Les tests effectués avec seulement 128 Mo d'échange ont révélé que je n'avais pas besoin d'un échange plus important, sauf si je voulais hiberner. J'ai utilisé des environnements cloud, lxc, virtualbox, wine, etc. J'ai rendu des vidéos avec openshot, kazam, frein à main, audace. J'ai utilisé gimp, blender, Inkscape et même la suite complète de LibreOffice. J'ai même joué sur Steam et dans aucun de ces scénarios, l'échange n'a été utilisé. Bien sûr, il finira par s’habituer à l’utilisation du montant total du bélier d’une manière ou d’une autre, mais en général, plus vous avez de bélier, moins vous aurez besoin d’échange.

Juste mes 2 cents.

16
Luis Alvarado

Non, vous n'avez pas besoin de 32 Go tant que vous n'utilisez pas des fonctionnalités telles que la suspension sur disque.

9
AlexTheBird

Dans la plupart des cas, je dirais que vous n'en avez pas besoin du tout. Peut-être en aurez-vous besoin si vous éditez des fichiers image très volumineux, ou une autre application nécessitant beaucoup de mémoire vive.

Je n'en ai jamais vu utilisé sur mon système, semblable au vôtre. En fait, à un moment donné, je l'avais désactivé pendant une semaine ou deux accidentellement et je n'avais jamais remarqué de problème. Mais je garde encore environ 5 Go pour mon lecteur d'échange, principalement parce que j'ai plus de 1 To disponible, et que je n'utilise pas tout l'espace qu'il est.

6
Marty Fried

Si votre RAM est supérieure à 1 Go, cela suffit généralement pour Ubuntu. La règle "Swap = RAM x2" s’applique aux anciens ordinateurs dotés de 256 ou 128 Mo de RAM.

Donc, 1 Go de swap est généralement suffisant pour 4 Go de RAM. 8 Go serait trop.

3
Emerson Hsieh

Si vous utilisez le mode hibernation, vous pouvez utiliser autant d’échange que votre quantité de RAM.

Pour une règle générale sur le nombre d’échanges à effectuer, lisez ce qui suit:

https://help.ubuntu.com/community/SwapFaq

Dans votre cas, je dirais que 4 Go suffiraient pour correspondre à votre RAM.

3
roadmr

Si vous utilisez le mode hibernation, votre échange doit avoir au moins le même montant que votre bélier physique.

2
gemue2010

Si vous souhaitez utiliser le mode hibernation, vous n’avez besoin que d’échange, c’est une perte d’espace sur votre disque dur.

2
Rens

J'ai un ordinateur portable avec 4 Go de RAM et Ubuntu 16.04. Après le démarrage, il consomme environ 1 Go de RAM et même dans ce cas, Inkscape (par exemple) ne s'exécutera pas (le moniteur système affiche plus de 50% de la RAM disponible). Inkscape se bloque Après l'application d'un fichier d'échange, celui-ci s'exécute comme prévu, même si aucun octet d'échange n'est utilisé) . Inkscape running Je recommande donc une partition d'échange (ou fichier d'échange). À propos de la taille, vous pouvez utiliser la règle david6.

1
Danilo

À partir d'Ubuntu SwapFaq :

Pourquoi ai-je besoin d'un échange?

Programmes consommant de la mémoire Parfois, un programme volumineux (comme LibreOffice, Neverwinter Nights ou un éditeur vidéo) oblige l'ensemble du système à avoir besoin de plus de mémoire. Un nombre important de pages utilisées par ces programmes volumineux lors de son démarrage peuvent uniquement être utilisés pour l’initialisation puis ne plus jamais être utilisés. Le système peut échanger ces pages et libérer de la mémoire pour d'autres programmes ou même pour le cache de disque. Dans ces cas, l’échange sera utilisé pour aider le système à gérer toute charge supplémentaire.

Veille prolongée (suspension sur disque) La fonction de veille prolongée (suspension sur disque) écrit le contenu de RAM sur la partition de swap avant de l'éteindre. machine. Par conséquent, votre partition d'échange doit être au moins égale à votre taille RAM. L'implémentation d'hibernation actuellement utilisée dans Ubuntu, swsusp, nécessite une partition d'échange ou de suspension. Il ne peut pas utiliser un fichier d'échange sur un système de fichiers actif.

Circonstances imprévisibles Des événements imprévus peuvent se produire et se produiront (un programme en train de devenir fou, une action nécessitant beaucoup plus d'espace que vous ne le pensiez ou toute autre combinaison imprévisible d'événements). Dans ces cas, l’échange peut vous donner un délai supplémentaire pour comprendre ce qui s’est passé ou pour achever vos travaux.

Optimisation de l'utilisation de la mémoire Les disques durs mécaniques étant considérablement plus lents que RAM (SSD - Solid State Drive - le stockage n'est pas aussi lent que les disques physiques, mais reste plus lent que RAM), lorsque vous avez besoin d’un fichier (fichier de données comme une vidéo, des exécutables tels que Firefox ou des bibliothèques), le noyau Linux lit le fichier dans RAM et le conserve à cet endroit, de sorte que la prochaine fois. vous en avez besoin, il est déjà dans RAM et l'accès aux données est beaucoup plus rapide. Les parties de RAM qui accélèrent la lecture du disque sont appelées "mémoire en cache". Vous remarquerez qu'ils font une énorme différence en termes de réactivité. Le noyau Linux déplace automatiquement RAM réservée par les programmes - mais pas vraiment utilisée - dans swap, afin de pouvoir mieux étendre la mémoire en cache.

Optimisation des performances de swap Etant donné que l’espace de swap utilise un périphérique de disque, cela peut entraîner des problèmes de performances sur tout système qui en utilise beaucoup, car le système lui-même peut également utiliser le même périphérique de disque au même endroit. même temps que nécessaire pour les opérations de swap. Une façon de réduire ce problème consiste à disposer d'espace de permutation sur un disque physique différent, de sorte que la concurrence pour cette ressource soit réduite ou éliminée.

De combien d'échange ai-je besoin?

Pour moins de 1 Go de mémoire physique (RAM), il est vivement recommandé que l’espace de permutation soit au minimum égal à la quantité de RAM. En outre, il est recommandé que l'espace de permutation soit au maximum égal à deux fois la quantité de RAM, en fonction de la quantité d'espace disque disponible pour le système en raison de rendements décroissants.

Pour les systèmes plus modernes (> 1 Go), votre espace d'échange doit être au minimum égal à la taille de votre mémoire physique (RAM) "si vous utilisez le mode hibernation", sinon vous avez besoin d'un minimum de rond (sqrt (RAM)) et d'un maximum. de deux fois la quantité de RAM. Le seul inconvénient d'avoir plus d'espace d'échange que vous n'utiliserez réellement est l'espace disque que vous allez réserver.

Les "rendements décroissants" signifient que si vous avez besoin de plus d'espace de swap que deux fois votre taille RAM, vous feriez mieux d'ajouter plus de RAM, car l'accès au disque dur (disque dur) est d'environ 10³ plus lent. puis RAM accès, donc quelque chose qui prendrait 1 seconde prend subitement plus de 15 minutes! Et encore plus d'une minute sur un Solid State Drive (SSD) rapide ...

Exemples de scénarios

    RAM(GB) No hibernation  With Hibernation  Maximum
      1      1                2                   2
      2      1                3                   4
      3      2                5                   6
      4      2                6                   8
      5      2                7                  10
      6      2                8                  12
      8      3               11                  16
     12      3               15                  24
     16      4               20                  32
     24      5               29                  48
     32      6               38                  64
     64      8               72                 128
    128     11              139                 256
1
Jebin Philipose

S'il s'agit d'un ordinateur portable, le swap doit être au moins égal à la quantité de mémoire vive (RAM), afin de permettre la mise en veille prolongée. Je garderais toujours un montant égal à la quantité de RAM même s'il s'agissait d'un ordinateur de bureau, mais ce n'est que moi; cela deviendra peu utile dans un bureau.

0
haziz

Garde ça en tête -

En règle générale, vous devez redimensionner votre espace de swap à environ 2x la mémoire principale pour les systèmes dotés de moins de 2 Go de RAM, ou environ 1 mémoire principale si vous en avez plus.

Donc, si vous avez 4 Go de RAM, vous ne devriez jamais avoir besoin d’échange sauf si vous êtes en veille prolongée.
L’échange requis serait d’environ 3 - 3,5 Go, pas plus que cela.
Alors utilisez votre bon sens et ne gaspillez pas d’espace disque

0
Ashu

Je pense que vous avez le contraire. Recommandation SWAP , il vous faudrait environ 16 Go. SWAP doit donc être égal à la moitié de la taille réelle de RAM. Mais c'est toujours BEAUCOUP d'espace. Cela dépend de ce dont vous avez besoin. Je dirais que si vous n'utilisez pas "hibernate", gardez environ 4 Go à environ 8 Go si vous pouvez vous permettre l'espace disque nécessaire. Étant donné que vous avez 16 Go, je suppose que vous utilisez peut-être un ordinateur qui a besoin de ressources puissantes… il serait donc peut-être avantageux d’avoir un SWAP de 16 Go à 32 Go.

J'ai 2 Go RAM et 1 Go SWAP. Cela me convient assez bien, mais ce n'est que mon opinion. Regardez les autres commentaires/suggestions et voyez ce qu'ils disent.

0
waynerod10

Trop d’informations et divergence d’opinion.

Mon suggéré bunt instructions de bureau:

 amount of RAM      recommended swap    with hibernation
----------------    ----------------    ----------------
 less than 4GB        2x RAM size         3x RAM size
   up to 8GB              4GB             2x RAM size
   up to 16GB             4GB            1.5x RAM size
  16GB or more            4GB           No extra needed
0
david6

Je ne pouvais pas trouver de références à citer ici, mais si vous envisagez d'utiliser une application dans laquelle vous devez échanger des données complètes dans la RAM, vous aurez au moins besoin de "taille de la RAM + 128 Mo" ou "1,25 fois de RAM Taille '(j'ai oublié laquelle était correcte) en supposant que vous avez RAM plus de 2 Go. Si RAM est égal ou inférieur à 2 Go, il est recommandé de prendre deux fois la taille RAM au format swap.J'ai suivi cette recommandation dans mon organisation précédente pour IBM AIX basée sur un document d'IBM. Je pense que cela est vrai pour la plupart des * nix car l'utilisation de swap consiste à déplacer les données de RAM en toute sécurité au cas où RAM ne suffirait pas pour gérer les données à charger en mémoire. La commande 'free' peut être utilisée pour évaluer la quantité de swap utilisée dans la réalité.

0
Jamess

Non, vous n'avez certainement pas besoin de 32 Go. En règle générale, pour un système de bureau, je dirais que votre échange devrait être quelque part entre 4 Go et physique RAM + quelques GB. Donc, pour 16 Go de RAM physique, l’échange peut être de 4 Go à 18 Go, peut-être.

Les éléments dont vous aurez besoin pour basculer vers l’espace de permutation seront à peu près égaux à la quantité de RAMphysique utilisée par les applications qui restent résidentes - c’est-à-dire les services système et les applications qui restent en cours d’exploitation (comme opposé aux tâches exécutées une fois puis abandonnées). Supposons que sur un ordinateur de bureau, vous puissiez laisser ouverts un navigateur, un traitement de texte, un programme de messagerie électronique et un éditeur graphique ou vidéo pendant que vous travaillez sur autre chose. Ceux-ci peuvent facilement occuper plus de 2 Go, voire plus de 4 Go. Alors peut-être que 6 Go de swap est approprié.

En règle générale, il ne fait pas de mal de disposer de quelques Go de plus que nécessaire. L’échange ne sera généralement pas utilisé si vous avez beaucoup de RAM, mais il est utile lorsqu’un processus utilise une quantité excessive et que vous commencez à devenir trop bas, ce qui peut empêcher le système de tuer des processus.

Remarque: si vous souhaitez utiliser l'hibernation du système d'exploitation, vous aurez besoin des 16 Go mentionnés ci-dessus, mais les ordinateurs modernes ne tireront pas grand profit de l'hibernation. Si vous possédez un disque SSD rapide, le démarrage peut être aussi rapide ou plus rapide que de sortir du mode veille prolongée, et les ordinateurs modernes consomment une quantité d'énergie négligeable en mode veille. Consommer de l'énergie en mode veille prolongée n'est pas un facteur important.

0
thomasrutter

Si vous construisez de très gros fichiers, par exemple si vous construisez des systèmes de traduction automatique sur un ordinateur portable (oui, pourquoi voudriez-vous faire cela? Pour ma part, je peux dire que mes professeurs me font ;-)) la réponse Oui, en fait, je regrette de ne pas avoir échangé 32 Go ...

Pour une utilisation occasionnelle d’Ubuntu pour le travail de bureau et sur Internet, vous n’utiliserez jamais 2 Go d’échange, mais en réalité, il n’existe pas de réponse claire, tout dépend de ce que vous allez faire sur votre ordinateur ...

0
Hakim Jonas Ghoula

J'ai un ordinateur portable Mac, que je laisse pendant des mois. Bien que beaucoup mieux que Windows, la mémoire s'introduit, en particulier avec votre navigateur, si vous la maintenez. Donc, finalement, la mémoire se remplit. Maintenant, si vous avez un échange, comme d'autres personnes l'ont noté, vous pouvez survivre, remarquer et tuer quelque chose. Mais plus précisément, si vous avez un échange, certaines pages sont échangées et vous pouvez continuer.

Donc, si vous prévoyez de quitter la machine pendant une longue période, l’échange est un moyen pratique de libérer de la mémoire de la malbouffe zombie. Certes, il vous faudra plus de temps pour remplir 16g que moi avec 3gb, mais c'est toujours Nice. Pour cela, 4 Go fera l'affaire.

0
Dov

Personne ne semble avoir mentionné une autre raison d'avoir un espace d'échange important étant que le système ralentisse sensiblement plutôt que de ne pas exécuter les programmes lorsque vous commencez à manquer de mémoire. Si vous avez un équilibreur de charge en amont qui redirige en cas d'échec, vous voudrez peut-être garder le swap petit (disons 1 Go). Si vous voulez que les programmes ralentissent d'abord, alors je considérerais 4 Go + racine carrée de la taille de la mémoire, et si vous le souhaitez pour vraiment ralentir avant que les choses ne meurent, gardez une taille de mémoire minimale de 1,25 fois (tant que des humains impatients n'abandonnent pas en premier - cela serait plus approprié pour des tâches en arrière-plan).

Je configure en standard 1 Go pour mes machines de développement et de production, peu importe la quantité de mémoire réelle dont elles disposent, elles ont assez pour compiler tous les programmes que je souhaite et pour échanger les programmes jamais utilisés pour utiliser le libéré de la mémoire pour la mise en mémoire tampon du disque.

En comparaison, mon ordinateur portable de 32 Go est doté de 64 Go d’échange, ce qui est un peu exagéré, mais je voulais être sûr qu’il continuait de fonctionner même lentement, et je savais que j’allais utiliser plusieurs machines virtuelles gourmandes en mémoire. Un effet inattendu est que lorsque vous avez une plage de mémoire de 32 Go +, le retour en veille prolongée (qui recharge 32 Go de mémoire) est sensiblement plus lent qu’un démarrage à froid.

0
iheggie