306 votes

J'ai 16 Go de RAM. Ai-je besoin de 32 Go de swap ?

J'ai lu à plusieurs endroits que la règle générale pour l'espace de pagination est de doubler la quantité de RAM physique. Cependant, 32 Go semblent être BEAUCOUP. En ai-je besoin ? En ai-je besoin du tout avec cette quantité élevée de RAM physique ?

263voto

Jeremy Cantrell Points 7858

Voici une très bonne recommandation de Red Hat : Espace swap système recommandé

Un extrait du même lien :

Dans le passé, la quantité d'espace swap recommandée augmentait linéairement avec la quantité de RAM dans le système. Cependant, les systèmes modernes comprennent souvent des centaines de gigaoctets de RAM. Par conséquent, l'espace swap recommandé est considéré comme une fonction de la charge de travail de la mémoire système, et non de la mémoire du système.

Et un autre extrait d'un ancienne version de la page :

Toutefois, étant donné que l'espace d'échange 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 mémoire d'un système, nous recommandons de déterminer l'espace d'échange du système à l'aide du tableau suivant.

Table RHEL 8 :

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

À la limite de chaque plage répertoriée dans le tableau ci-dessus, par exemple un système avec 2 Go, 8 Go ou 64 Go de RAM système, il est possible d'exercer une certaine discrétion en ce qui concerne l'espace d'échange choisi et la prise en charge de l'hibernation. Si les ressources de votre système le permettent, l'augmentation de l'espace swap peut conduire à de meilleures performances. Un espace swap d'au moins 100 Go est recommandé pour les systèmes comportant plus de 140 processeurs logiques ou plus de 3 To de RAM.

Table originale de RHEL 5 :

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

206voto

rossp Points 900

Cela dépend entièrement de ce que vous comptez faire avec la machine. Par exemple, s'il s'agit d'un serveur Sap, alors oui, j'ajouterais 32 Go d'espace de pagination (nous avons des boîtes au travail avec 128 Go de RAM et 32 Go d'espace de pagination). Si vous manipulez des images et des vidéos massives, il est logique d'avoir un peu de swap. 32gb est probablement exagéré.

Cependant, je ne dirais pas qu'il s'agit d'un échange zéro.

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

Toute personne qui vous dit "vous n'avez pas besoin de swap" sans vous demander ce que vous faites réellement avec votre ordinateur fait des suppositions. Même s'il est possible que vous fassiez très peu de choses avec votre ordinateur qui consomme de la RAM, il est préférable de poser des questions sur ce que vous avez l'intention de faire avec lui avant de juger de manière irréfléchie que vous n'avez pas "besoin" de swap. A mon humble avis

64voto

brent Points 748

Argh. Les réponses sur ce post sont tellement fausses, et ce post apparaît comme l'un des premiers résultats dans une recherche Google pour "Combien de swap ?".

Tout d'abord, un bon point de référence est le FAQ sur l'échange d'Ubuntu

Cette FAQ soulève un point important que personne ici ne mentionne, et qui est (c'est moi qui souligne)

Parfois, un gros programme (comme OpenOffice, Neverwinter Nights ou un éditeur vidéo) fait que le système entier a besoin de plus de mémoire. Un nombre important de pages utilisées par ces gros programmes lors de leur démarrage peuvent n'être utilisées que pour l'initialisation et ne plus jamais être utilisées. Le système peut échanger ces pages et libérer la mémoire pour d'autres programmes ou même pour le cache du disque. . Dans ces cas, le swap sera utilisé pour aider le système à gérer toute charge supplémentaire.

Donc, Le swap n'est pas seulement destiné à l'hibernation ! Cette activité, qui consiste à échanger les pages inutilisées, peut être bénéfique dans certains cas et préjudiciable dans d'autres. Bénéfique parce qu'elle permet de libérer de la mémoire pour que le système puisse l'utiliser ailleurs, mais préjudiciable lorsque l'échange est trop agressif et remplace des pages que vous voulez vraiment. C'est particulièrement vrai sur un système de bureau où les applications peuvent rester inactives pendant de longues périodes, mais où l'utilisateur s'attend à des performances immédiates lorsqu'il les fait revivre. Le contrôle de l'agressivité de cette opération est appelé l'échange

La FAQ Ubuntu Swap discute légèrement de ce sujet dans la rubrique Qu'est-ce que le swappiness et comment puis-je le changer ? La valeur par défaut sur un système Ubuntu est de 60, tandis que la FAQ recommande une valeur de 10 pour une machine de bureau.

Donc, je dirais que c'est généralement Il est très important de ne pas avoir un système sans aucun espace de pagination, comme certaines personnes le recommandent dans cette question, à moins que vous ne connaissiez avec certitude des scénarios d'utilisation très spécifiques pour votre système et que vous soyez très conscient des conséquences que cela pourrait avoir. (Personnellement, il n'y a aucune situation où je ferais fonctionner un système sans espace de pagination) Dans un scénario de perte de mémoire sans espace de pagination, le système commencera à tuer les processus (généralement celui qui a causé la perte de mémoire).

27voto

Owen Fraser-Green Points 642

Probablement pas. Si vous prévoyez de mettre votre ordinateur en hibernation (suspension-to-disk), vous aurez besoin d'au moins 16 Go. Si vous n'avez pas l'intention d'hiberner, il suffit de laisser quelques gigaoctets pour le swap (4-8 max.).

21voto

Bob Points 940

Par expérience, je peux dire ceci :

Pour ce que j'ai vu en utilisant 4GB de ram pendant 3 ans, Ubuntu a eu une utilisation de swap d'environ 60MB mais seulement en faisant des tâches très intensives. Il y a quelques semaines, j'ai commencé à utiliser un PC avec 16 Go de RAM et l'utilisation du swap est restée à 0 % pour toujours. J'ai effectué de nombreuses compilations, des rendus vidéo et d'autres tâches intensives. Il n'y a jamais eu de changement dans le swap. Pas même un changement de 1KB.

Fondamentalement, dans Ubuntu, plus vous avez de mémoire RAM, moins vous êtes susceptible d'utiliser ou d'avoir besoin de swap pour une tâche quelconque. 16GB de ram, ou même 8GB de ram est plus que suffisant. J'ai fait avec le PC de 16GB 8 PCs Virtualbox (chacun entre 1GB et 2GB de ram). J'ai compilé et rendu une vidéo 720p et même dans ces conditions, le swap n'a pas changé.

Cela dit, la règle du double de mémoire vive ne devrait pas s'appliquer aux systèmes basés sur Linux, d'autant plus si vous disposez de plus de mémoire. Vous devriez cependant avoir une taille de swap égale à votre taille de ram ou si vous prévoyez d'hiberner, puisque le processus d'hibernation prend tout ce qui est dans la ram et le met dans le swap, c'est pourquoi vous avez besoin d'une taille minimale égale à votre ram pour le swap.

L'autre détail est que certaines applications (pas toutes) forceront toujours la lecture à partir du swap. Il est donc bon d'en avoir un peu. La désactiver complètement est très mauvais dans le cas où vous arrivez au point où il n'y a plus de mémoire ou OOM. A ce stade, si vous n'avez pas de swap, il n'y a aucun moyen pour le noyau d'échanger les différentes utilisations des applications de ram et il commencera éventuellement à tuer les moins utilisées.

Si cela peut aider à la prise de décision concernant les ordinateurs personnels, après avoir mis à jour cette réponse en plus de 4 ans, j'ai utilisé un PC à 16 Go, 32 Go et maintenant 64 Go de RAM. Des tests avec seulement 128 Mo de swap ont révélé que je n'avais pas besoin d'un swap plus important, sauf si je voulais hiberner. J'ai utilisé des environnements cloud sur eux, lxc, virtualbox, Wine, vous le nommez. J'ai rendu des vidéos avec openshot, kazam, handbrake, audacity. J'ai utilisé gimp, blender, Inkscape et même la suite complète LibreOffice. J'ai même joué sur steam et dans aucun de ces scénarios, le swap n'a été utilisé. Bien sûr, il finira par être utilisé si vous finissez par utiliser la quantité totale de ram d'une manière ou d'une autre, mais en général, plus vous avez de ram, moins vous aurez besoin de swap.

Juste mes deux centimes.

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