depuis quelques années, j'ai lu que c'est une bonne idée de créer une partition de swap ayant le double espace de ma RAM. s'applique-t-il encore aujourd'hui? ou ce n'est plus nécessaire?
J'ai un serveur avec 8 Gio de RAM et je dois créer une partition de swap, et je me demandais si 16 Gio était trop.
Réponses:
Sur les grands systèmes, 8 Go de RAM physique, nous allouons généralement 2 Go de swap. Il s'agit de serveurs de bases de données chargés exécutant Oracle ou PostgreSQL. Pendant des années, je n'ai jamais vu de swap même sous une charge lourde. La charge lourde est d'environ 100 à 150 utilisateurs effectuant environ 10 000 lectures SQL et peut-être 2 500 écritures par minute.
Nous ajustons également le niveau de swapiness pour décourager l'échange et nous désactivons les processus inutiles que nous savons que nous n'avons pas besoin d'exécuter. (Builds Linux personnalisés)
Comme Eddie, dit ci-dessus, 1x RAM physique est une bonne règle de base pour tout ce qui est inférieur à 4 Go. Je fais des builds Linux personnalisés pour une grande entreprise Fortune-500 et ce sont les choses que nous faisons généralement, et nous n'avons eu aucun problème au cours des 5 dernières années que j'ai consultées pour eux.
Sur les systèmes plus grands: Linux 64 bits avec 32 Go et 64 Go de RAM, ce sont nos serveurs de base de données Oracle, et nous gardons généralement 2 Go de swap pour des choses comme Eddie le souligne ci-dessus - les processus inactifs seront déplacés pour swap en fonction de vos paramètres de swapiness.
la source
Une question apparemment intemporelle. Les bons amis de SlashDot en ont discuté il y a quelque temps. Découvrez ce qu'ils avaient à dire:
la source
Voir la réponse Combien d'espace SWAP sur un système à haute mémoire? pour quelques conseils, bien que votre question soit plus générale. Les opinions varient considérablement à ce sujet, mais généralement les personnes avec 1 Gio de RAM ou plus semblent fonctionner sans swap entièrement, ou avec 1xmemory comme swap.
Même si vous ne prévoyez pas d'utiliser autant de RAM que vous forcerez le swap à se produire, il y a une certaine valeur à avoir au moins 1xmemory comme swap: cela permet au système d'exploitation d'échanger certaines choses qui ne devraient pas être utilisées immédiatement afin qu'il puisse utiliser cette mémoire pour le disque ou les tampons d'E / S, par exemple.
la source
Si vous vous attendez à ce que votre système puisse hiberner puis reprendre avec succès :-), il est probablement préférable d'allouer plus d'espace pour la partition de swap que la quantité de RAM physique
la source
Mon fournisseur VPS ne fournit même pas d'espace de swap pour les serveurs, et le mien fonctionne bien sans lui.
La plupart des serveurs que je vois quotidiennement au travail sont également sans échange.
Éditer
Cependant - si vous exécutez une JVM, assurez- vous d'avoir au moins autant d'espace de swap que vous en aurez jamais défini en
-Xmx
raison d'un problème connu avec la JVM.En bref, lorsque la JVM a besoin de plus de mémoire qu'elle n'en utilise actuellement (mais n'a toujours pas atteint son
Xmx
), elle:Cela signifie que si vous échangez est inférieur au vôtre
Xmx
, il peut échouer.Pour citer le rapport de bogue
J'essaie de jouer en toute sécurité lorsque je travaille avec des machines virtuelles Java et de définir le swap sur une mémoire physique égale.
la source
Compte tenu de la vitesse des disques durs modernes, les gros swaps ne sont qu'une invitation à la raclée. Peut-être que les SSD inverseront cette tendance, mais avec peut-être une vitesse de transfert maximale de 300 Mo / s pour un disque, l'échange de 2 à 4 Go va prendre un bon moment.
Dans l'ancien temps (c.-à-d. Linux 1.2, i386, SunOS 4.x), vous disposiez peut-être de 5 à 15 Mo de processus démon en cours d'exécution et de 4 à 32 Mo de RAM et donc de démons qui étaient bloqués en attendant I / O pourrait être échangé sans aucun impact réel sur les performances ... Et ils feraient mieux puisque les programmes utilisateur pourraient n'avoir que 2-3 Mo de RAM disponibles. L'échange avait beaucoup de sens.
Maintenant dans mon environnement, la plupart des serveurs ont des charges de travail lourdes à mémoire unique et la RAM peut être estimée de façon assez précise ... Le swap est là pour les urgences, les processus de fuite, etc.
L' exception concerne les ordinateurs portables et les postes de travail qui pourraient dormir. De nombreux systèmes d'exploitation utiliseront la zone de swap pour enregistrer l'image suspendue et dans ces cas, le swap doit être plus grand que la mémoire physique. Sous Linux avec suspend2 / tuxonice, vous devriez avoir 2xRAM en taille d'échange pour prendre en charge la suspension sur disque.
la source
De nos jours, si vous utilisez un serveur de 32 Go ou 64 Go, 4 Go de swap pour la valeur par défaut est un montant sûr. Tout ce qui est plus grand que cela est exagéré avec autant de RAM physique disponible.
la source
Idéalement, vous n'utiliserez pas du tout le swap, et le truc 2x RAM est vraiment quelque chose qui reste des années passées.
Si cela vous inquiète, je ferais quelque chose comme:
Je pense que 16 Go semblent beaucoup trop gros, personnellement.
la source
Autrefois, vous vouliez autant que possible, la consommation de mémoire dans les noyaux modernes * nix appartient au passé. Le vieil adage était "2x votre mémoire". Entre 2 Go ou la quantité d'espace que la machine a en mémoire vive de nos jours, vous serez proche de l'endroit où vous devez être.
la source
Le swap est également utilisé pour stocker les vidages après la panique du noyau. Si vous êtes intéressé par l'analyse de ces vidages et n'avez pas spécifié une autre destination de vidage, votre swap doit être au moins aussi grand que votre RAM.
la source
Il n'y a pas d'algorithme unique qui vous indique la quantité de swap dont vous avez besoin. Dans la pratique, vous devez placer votre système sous la charge la plus importante que vous envisagez de prendre en charge et découvrir la quantité de ressources qu'il utilise réellement. Définissez votre fichier d'échange en conséquence.
Pour la RAM physique, vous devez placer votre système sous la charge de «croisière» réelle que vous prévoyez de gérer et acheter en conséquence. Pour les systèmes à faible latence, vous ne devez pas du tout permuter à l'intérieur de votre charge de croisière (ce n'est pas la même chose que de ne pas avoir de swap alloué ou même en cours d'utilisation). , mais dans l'ensemble, vous devriez avoir le moins d'échanges possible.
Bien sûr, vous pouvez échanger les performances pour un prix inférieur.
la source