Comment devrais-je décider de la taille de ma permutation sur une nouvelle machine Linux (Debian) disposant de 2 à 4 Go de RAM? Ai-je vraiment besoin d'espace d'échange?
Comment devrais-je décider de la taille de ma permutation sur une nouvelle machine Linux (Debian) disposant de 2 à 4 Go de RAM? Ai-je vraiment besoin d'espace d'échange?
Réponses:
Il existe de nombreuses façons de déterminer la quantité de swap utilisée par une machine. Les suggestions courantes utilisent des formules basées sur la 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 (une boîte avec 1 Go de RAM peut utiliser un échange de 2 x RAM (2 Go), tandis qu'une boîte avec 16 Go de mémoire vive peut utiliser un échange de 0,5 x RAM (8 Go).
Une autre chose à considérer est l'utilisation de la boîte. Si un grand nombre de processus s'exécutant simultanément doivent être exécutés sur la boîte, mais qu'un nombre important d'entre eux resteront inactifs pendant une période donnée, il est logique d'ajouter un échange supplémentaire. Si vous exécutez un petit nombre de processus critiques, il est logique d'ajouter des conversions supplémentaires (cela peut sembler contre-intuitif, mais je vais vous expliquer dans une minute). Si vous utilisez une boîte en tant que bureau, il est logique d’ajouter un échange supplémentaire.
Quant à savoir si vous devez inclure l'échange, oui, vous devriez le faire. Vous devez toujours inclure un espace d'échange sauf si vous savez vraiment ce que vous faites et vous avez vraiment une bonne raison de le faire.
Vous voyez, dans le fonctionnement du noyau Linux, le swap n'est pas utilisé uniquement lorsque vous avez épuisé toute la mémoire physique. Le noyau Linux prendra les applications qui ne sont pas actives (en veille) et après un certain temps, déplacera l'application pour la permuter à partir de la mémoire réelle. Le résultat est que lorsque vous avez besoin de cette application, il y aura un délai momentané (généralement juste une seconde ou deux) pendant que la mémoire de l'application est relue de swap en RAM. Et c'est généralement une bonne chose.
Cela vous permet de mettre les applications inactives en veille, ce qui donne à vos applications actives un accès à de la mémoire RAM supplémentaire. De plus, Linux utilisera toute mémoire RAM disponible (non allouée) sur une machine en tant que cache de disque, accélérant et rendant la plupart des activités de disque (lentes) plus rapides. L'échange de processus inactifs vous donne plus de cache disque et accélère votre machine.
Enfin, avouons-le, l’espace disque est bon marché. Vraiment pas cher. Il n'y a vraiment aucune bonne raison de ne pas glisser un espace (relativement) réduit pour un échange. Si j'utilisais 2 Go à 4 Go de RAM sur une machine, je configurerais probablement mon espace d'échange de manière à ce qu'il soit au moins égal à la RAM. Si c’était moins de 2 Go de RAM, je choisirais toujours au moins 2 Go d’échange.
UPDATE: Comme un excellent commentaire mentionné (et j'ai oublié d'inclure), si vous utilisez un ordinateur portable ou un ordinateur de bureau que vous voudrez peut-être mettre en mode "Veille prolongée" (Suspend to Disk), alors vous voulez toujours au moins autant échangez comme vous avez la mémoire. L'espace de permutation sera utilisé pour stocker le contenu de la RAM dans l'ordinateur pendant qu'il est en veille.
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 dispose de 1 Go de RAM, votre échange serait de 2 Go, pour 16 Go, il serait de 18 Go.
Réponse tardive, et je pense que cela a été assez couvert dans la réponse sélectionnée, mais il y a quelques informations utiles et faciles à digérer dans la réponse fournie par @ssapkota ici (copie / collée ci-dessous).
Voici une très bonne recommandation de RedHat: Espace de permutation de systèmes recommandé
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 mémoire RAM du système. Mais comme la quantité de mémoire dans les systèmes modernes a augmenté pour atteindre des centaines de giga-octets, il est maintenant reconnu que la quantité d'espace d'échange requise par un système dépend de la charge de travail mémoire exécutée sur ce 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 de la mémoire d’un système , nous vous recommandons de déterminer l’échange de système à l’aide du tableau suivant.
Tableau actuel (à partir de 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
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
Cela dépend beaucoup de ce que vous faites avec. Avec la charge de travail appropriée, vous n'avez pas réellement besoin d'espace d'échange, que vous disposiez de 16 Mo ou 16384 Mo de RAM; En effet, la plupart des périphériques Linux embarqués fonctionnent sans aucun (vers quoi changeraient-ils?)
Compte tenu des prix en RAM, vous n'allez probablement pas utiliser le swap pour un calcul actif. Alors, que reste-t-il?
(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 vims, xterms, etc. en cours d'exécution sur d'autres ordinateurs de bureau.
Sur la plupart des serveurs que je fais fonctionner, il n’ya pratiquement jamais rien échangé et 1 à 2 Go d’échange (quelle que soit la quantité de RAM) semble correct.
madvise
, mais cela ne manquera pas… ce bogue parle de manquer de mémoire pendant le nettoyage de la mémoire. L'ajout de swap empêche cela, bien sûr, mais l'ajout de RAM le serait également. Peut-être que cela est dû au 32 bits avec PAE?
Xms
et que vous Xmx
ne les définissez pas, elles risquent de vous faire mal: cela nous a posé de gros problèmes pendant plus de deux semaines jusqu'à ce que nous ayons enfin trouvé la
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.
Voici une discussion intéressante sur le sujet. Personnellement (et après avoir lu cette discussion), je laisserais encore environ 1 Go pour le swap.
Je ne peux pas parler directement à Debian, mais je sais que lorsque vous dépassez la barre des 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 de RAM, la suggestion passe à 0,75 x RAM.
Bien sûr, j’ai trouvé cela vrai pour Solaris. Il s’agit en fait de la métrique utilisée pour les installations Oracle. YMMV dépend donc des applications que vous allez exécuter.
L'espace de permutation peut servir de "bourrage" lorsque vous manqueriez immédiatement de mémoire.
Lorsqu'un processus consomme toute la mémoire vive disponible, la machine s'exécutera 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.
Au fil des ans, j'ai suivi la règle voulant que pour les machines Windows, vous ayez autant de swap que de RAM ... Sur Novell, nous allions utiliser le swap plus haut si nous avions plus d'imprimantes ... Pour Linux, la règle et la pratique ont été de 1 Go. échangez pour chaque 2 Go de RAM que vous avez. Et vous le placez à l'avant du disque pour qu'il soit accessible plus rapidement.
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.
Je crée un swap de 1 Go et achète plus de RAM à la seconde où il est utilisé. Vous n'avez pas vraiment besoin de permuter sur les ordinateurs modernes, la RAM est tellement bon marché.
Pourquoi utilisez-vous le système? Personnellement, je n'utilise aucun échange. Si quelque chose utilise un jeton de 512 Mo ou quelque chose simplement pour que les choses puissent être mises sur le disque si elles résident mais restent inactives pendant de longues périodes.
Je viens d'utiliser un petit échange de jeton (généralement 256 Mo, mais j'ai même fait 64 Mo) parce que la configuration d'un système avec zéro échange nécessite une configuration spéciale.
L'espace disque n'est pas cher, mais slooooooooow. Dès que le système commence à permuter, les performances sont nulles. Et la RAM n'est plus si chère.
Croyez-moi, 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 assez d'argent pour acheter au moins 2 Go de RAM supplémentaires.