web-dev-qa-db-fra.com

Combien d'espace SWAP sur un système de 2 à 4 Go?

Comment dois-je décider de la taille de mon swap sur une nouvelle machine Linux (Debian) avec 2 à 4 Go de RAM? Ai-je vraiment besoin d'un espace d'échange?

53
C. Ross

Il existe de nombreuses façons de déterminer la quantité de swap utilisée dans une machine. Les suggestions courantes utilisent des formules basées sur RAM telles que 2 x RAM, 1,5 x RAM, 1 x RAM, 0,75 x RAM et 0,5 x RAM. Plusieurs fois, les formules varient en fonction de la quantité de RAM (donc une boîte avec 1 Go de RAM peut utiliser 2 x RAM swap (2GB), tandis qu'un boîte avec 16 Go de RAM pourrait utiliser 0,5 x RAM swap (8 Go).

Une autre chose à considérer est à quoi servira la boîte. Si vous prévoyez d'avoir un grand nombre de processus exécutés simultanément sur la boîte, mais qu'un nombre important d'entre eux seront inactifs pendant des périodes de temps, alors ajouter un échange supplémentaire est logique. Si vous allez exécuter un petit nombre de processus critiques, ajouter un échange supplémentaire est logique (cela peut sembler contre-intuitif, mais je l'expliquerai dans une minute). Si vous exécutez une boîte en tant que bureau, ajouter un échange supplémentaire est logique.

Quant à savoir si vous devriez inclure l'échange, oui, vous devriez. Vous devriez toujours inclure un espace de swap à moins que vous vraiment sachiez ce que vous faites, et vous avez vraiment une bonne raison pour cela.

Vous voyez, le fonctionnement du noyau Linux, le swap n'est pas uniquement utilisé lorsque vous avez épuisé toute la mémoire physique. Le noyau Linux acceptera les applications qui ne sont pas actives (en veille) et après un certain temps, déplacera l'application pour échanger de la mémoire réelle. Le résultat est que lorsque vous avez besoin de cette application, il y aura un retard momentané (généralement juste une seconde ou deux) pendant que la mémoire de l'application est relue du swap vers la RAM. Et c'est généralement une bonne chose.

Cela vous permet de mettre les applications inactives en "veille", donnant à vos applications actives accès à de la RAM supplémentaire. De plus, Linux utilisera tout (non alloué) disponible RAM sur une machine comme cache de disque, ce qui rend la plupart des activités de disque (lentes) plus rapides et plus réactives. La permutation de processus inactifs vous donne plus de cache de disque et fait votre machine dans l'ensemble plus rapidement.

Enfin, avouons-le, l'espace disque est bon marché. Vraiment pas cher. Il n'y a vraiment aucune bonne raison de ne pas balayer un (relativement) petit espace pour l'échange. Si je fonctionnais avec 2 Go à 4 Go de RAM dans une machine, je configurerais probablement mon espace de swap pour être au moins égal à la RAM. S'il était inférieur à 2 Go de RAM, alors J'irais toujours avec au moins 2 Go de swap.

MISE À JOUR: Comme un excellent commentaire mentionné (et j'ai oublié d'inclure), si vous utilisez un ordinateur portable ou un bureau que vous voudrez peut-être mettre en mode "veille prolongée" (Suspendre sur le disque), alors vous toujours voulez au moins autant de swap que vous avez de mémoire. L'espace d'échange sera utilisé pour stocker le contenu du RAM dans l'ordinateur pendant qu'il "dort").

54

Red Hat recommande la formule suivante pour les serveurs avec beaucoup de RAM:

if MEM < 2GB then SWAP = MEM*2 else SWAP = MEM+2GB

Si votre système a 1 Go de RAM, votre swap serait de 2 Go, pour 16 Go ce serait 18 Go.

17
PEra

Réponse tardive, et je pense que cela a été à peu près couvert dans la réponse sélectionnée, mais il y a de bonnes informations facilement digestibles dans la réponse fournie par @ssapkota ici (copier/coller ci-dessous).

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

Un extrait du même lien:

Au cours des années passées, la quantité recommandée d'espace de swap a augmenté linéairement avec la quantité de RAM dans le système. Mais parce que la quantité de mémoire dans les systèmes modernes a augmenté en centaines de gigaoctets, il est désormais 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 s'exécutant sur ce système. Cependant, é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 de la mémoire d'un système , nous vous recommandons de déterminer le swap du système à l'aide du tableau suivant.

Tableau actuel (en décembre 2012):

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            0.5 times the amount of RAM    1.5 times the amount of RAM
64GB of RAM or more           4GB of swap space              No extra space needed

Tableau d'origine:

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 
12
ubiquibacon

Cela dépend beaucoup de ce que vous en faites. Avec la charge de travail appropriée, vous n'avez en fait pas besoin d'espace de swap, que vous ayez 16 Mo ou 16384 Mo de RAM; en effet, la plupart des appareils Linux embarqués fonctionnent sans (à quoi échangeraient-ils?)

Compte tenu des prix RAM, vous n'allez probablement pas utiliser le swap pour le calcul actif. Alors, que reste-t-il?

  1. Sur les postes de travail, l'espace d'échange est utilisé pour la suspension sur disque. Cet espace de swap doit être d'environ 1 × RAM, en fonction de la compression du contenu de la mémoire.
  2. Permettre aux tâches inactives d'être supprimées de RAM pour faire plus de place pour le cache disque
  3. Idem, mais pour permettre aux processus actifs de l'utiliser à la place pour le tas/la pile

(2) et (3) dépendent fortement de la charge de travail. Sur mes ordinateurs de bureau, je peux facilement utiliser 4 Go + sur (2), en laissant des vims, des xterms, etc. s'exécuter sur d'autres ordinateurs de bureau.

Sur la plupart des serveurs que j'exécute, il n'y a presque jamais rien échangé et 1 à 2 Go de swap (indépendamment de RAM amount) semble OK).

8
derobert

Eh bien, cela dépend des services et des applications que vous prévoyez d'exécuter. Vous pouvez surveiller votre utilisation de la mémoire avec free -m et ajuster votre partition de swap en conséquence au fil du temps.

Voici une discussion intéressante sur le sujet. Personnellement (et après avoir lu cette discussion), je laisserais encore environ 1 Go pour l'échange.

4
Ivan

L'espace de swap peut servir de "remplissage" alors que vous pourriez autrement manquer de mémoire immédiatement.

Lorsqu'un processus consomme la totalité des RAM puis une partie de la machine fonctionnera très lentement, mais vous pourrez généralement récupérer. Il sera également plus facile de voir quel processus est à l'origine du problème .

2
starblue

Je ne peux pas parler directement à Debian, mais je sais que lorsque vous montez au-dessus de 2 Go de RAM, l'équation 2xRAM d'origine change, généralement jusqu'à 1xRAM. Je pense qu'une fois que vous avez atteint 16 Go RAM la suggestion baisse à nouveau à 0,75xRAM.

Bien sûr, j'ai trouvé cela vrai pour Solaris, et c'est en fait la métrique utilisée pour les installations Oracle, donc YMMV selon les applications que vous allez exécuter là-bas.

2
Milner

Je fais toujours autant de swap (au moins) que de RAM. Juste au cas où je voudrais mettre la machine en veille prolongée un jour. Peut fonctionner avec moins, mais pourrait tout aussi bien ne pas.

L'espace disque dur est bon marché de nos jours, donc je n'hésite pas à donner de l'espace de swap.

2
Martin C.

Au fil des ans, j'ai suivi la règle selon laquelle pour les machines Windows, vous avez autant de swap que de RAM ... Sur Novell, nous réglerions le swap plus haut si nous avions plus d'imprimantes ... Pour Linux, la règle et la pratique pour moi ont été de 1 Go échangez pour chaque 2 Go RAM que vous avez. Et vous le placez à l'avant du disque pour y accéder plus rapidement.

  • S'il s'agit d'une passerelle de messagerie/spam, j'utilise le double du swap en RAM
  • S'il s'agit d'un * serveur, je n'utilise pas du tout de swap
  • s'il s'agit d'un serveur LAMP, la règle 1/2 est en vigueur.

  • Le kilométrage varie en fonction de l'application et de l'utilisation de l'interface graphique.

1
Thomas Denton

J'utilise juste un petit échange de jetons (généralement 256 Mo, mais j'ai même fait 64 Mo) car la configuration d'un système avec zéro échange nécessite une configuration spéciale.

L'espace disque est bon marché, mais slooooooooow. Dès que le système commence à échanger, les performances sont nulles. Et RAM n'est plus si cher.

Faites-moi confiance, achetez un processeur légèrement plus lent et achetez plus de RAM. 2,8 GHz au lieu de 3,0 GHz vous permettra d'économiser suffisamment d'argent pour acheter au moins 2 Go de RAM supplémentaires.

0
Maneesh Kasera

Je crée un swap de 1 Go et j'achète plus RAM la seconde où il est utilisé. Vous n'avez pas vraiment besoin de swap sur les ordinateurs modernes, RAM est si bon marché.

0
Adam Gibbins

Pourquoi utilisez-vous le système? Personnellement, je n'utilise aucun swap. Si quoi que ce soit, utilisez un jeton de 512 Mo ou quelque chose juste pour que les choses puissent être mises sur le disque si elles sont résidentes mais inactives pendant de longues périodes.

0
Mike McQuaid