Pouvez-vous avoir trop de swap?

16

Je me demandais simplement si vous pouviez avoir une partition de swap trop grande. Si oui, quand une partition de swap est-elle trop grande? Quels sont les inconvénients / les effets néfastes d'avoir une partition de swap trop grande (même si j'ai beaucoup d'espace disque)?

Si non, quels sont les avantages d'avoir plus que l'espace d'échange recommandé?

An0n
la source
5
L'inconvénient apparent est que vous gaspillez de l'espace disque. OTOH: si vous avez "trop" de swap (disons 30 Go sur un système de 4 Go), les applications qui se comportent mal obtiendront une mémoire insuffisante bien plus tard et cela ralentira votre système. Les applications au comportement ordonné (sans fuite de mémoire) ne l'utiliseront tout simplement pas. (J'avoue, c'est une vue simplifiée.)
PerlDuck
Je suis d'accord avec @PerlDuck - "trop ​​d'échanges" utilise simplement l'espace disque. Votre système sera lent s'il commence à utiliser le swap, dans ce cas, exécutez moins d'applications, des applications plus légères ou obtenez plus de RAM
Panther
Je sais, donc si vous avez assez de mémoire vive, à part utiliser trop d'espace disque, y a-t-il des inconvénients? Excepté les applications "mal se comporter" comme le disait PerlDuck.
An0n
1
VTD Toutes les questions de l'édition justifient de changer la raison de fermeture du sujet en double en trop large. OP est évidemment vexé mais la méta ou une salle de chat est un meilleur endroit pour discuter.
WinEunuuchs2Unix
3
Dans le cas où les gens ne savent pas de quoi parlent @PerlDuck (et Panther), notez que même si vous disposiez d'un espace disque effectivement illimité, avoir plus d'espace pour permuter rendra les processus qui devraient juste être terminés, et qui autrement seraient rapidement arrêté automatiquement, ralentissez le système à une analyse pendant une longue période d'abord . Le commentaire de PerlDuck serait, je pense, également une réponse. Si nous finissons par rouvrir cette question, une réponse peut peut-être être ajoutée sur les inconvénients d'avoir beaucoup plus de swap que nécessaire. Parce qu'il y a des inconvénients.
Eliah Kagan

Réponses:

8

Non

À première vue, vous ne pouvez pas avoir trop de swap car vous pouvez voir le swap comme un moyen d'augmenter la RAM. En fait, cela n'augmente pas la RAM, il prétend simplement: si vous avez 8 Go de RAM réelle et un espace d'échange de, disons, 24 Go configurés, alors vos programmes peuvent allouer et utiliser jusqu'à 8 + 24 = 32 Go de mémoire ce qui sonne bien au premier abord.

Mais

Si vous exécutez des applications qui présentent des fuites de mémoire ou qui ne sont pas vraiment conçues pour fonctionner avec 8 Go de mémoire (pensez au montage vidéo, par exemple), ces applications commenceront à utiliser cet espace de swap et le swap est lent. Plus l'espace d'échange est activement utilisé par ces applications, plus le système est occupé à simplement déplacer la mémoire vers et depuis le disque. Cela ralentira considérablement la réactivité globale du système et conduira à une mauvaise expérience utilisateur.

Finalement - lorsque l'espace de swap est épuisé - certaines applications seront confrontées à une situation de mémoire insuffisante et seront tuées par OOM_Killer du noyau .

Du wiki :

Le cas typique de MOO dans les ordinateurs modernes se produit lorsque le système d'exploitation est incapable de créer plus de mémoire virtuelle, car tous ses périphériques de sauvegarde potentiels ont été remplis.

Conclusion

Par conséquent, un inconvénient d'avoir trop d' espace de swap est: plus vous en avez, plus tard cette situation de MOO se produit et plus vous devrez souffrir d'un système en retard et qui ne répond pas.

Un autre inconvénient apparent est bien sûr le gaspillage d'espace disque, mais ce n'est peut-être pas si important de nos jours.

PerlDuck
la source
+1 pour l'examen du cas de bord. Personnellement, je ne suis pas un grand fan de swap car l'hibernation est réservée aux ours et mes systèmes sont beaucoup trop occupés pour cela. ;-) À votre santé.
Elder Geek
@ElderGeek LOL. En fait, Eliah Kagan m'a fait transformer mon simple commentaire en réponse. Il m'a convaincu que l'inconvénient susmentionné d'avoir trop d'échanges est une chose cruciale et pourrait être important pour d'autres. Je suis avec vous et j'ai peu de swap configuré (2 Go avec 8 Go de RAM) et il n'est presque jamais touché.
PerlDuck
J'ai eu des résultats similaires avec des paramètres similaires, je souhaite que la rumeur de swap 2x meure enfin.
Elder Geek
5

Il n'y a pas d'inconvénient direct à un grand espace de swap. Avec la façon dont il est géré par le noyau, une augmentation de la quantité d'espace de swap au-dessus de ce qui est suffisant n'a pas ou un impact négligeable sur les performances.

Le seul inconvénient de l'espace d'échange «trop» est que vous ne pouvez pas utiliser cet espace pour le stockage.

David Foerster
la source
1
@ An0n: Je pense que ce serait un assez gros inconvénient d'allouer tous les ~ 6 To actuellement connectés à ma machine comme espace de swap. Où mettrais-je toute ma musique…?
David Foerster
2
@ An0n: À quoi sert un ordinateur si tout ce qu'il peut faire est de démarrer puis de ne pas stocker de données utiles? Cela ressemble plus à un radiateur coûteux.
David Foerster
1
@ An0n: Bien sûr, j'ai supposé autant mais vous manquez le point. Je pense que nous pouvons convenir que pour être utile, un ordinateur doit pouvoir atteindre un état de système utilisable (y compris être capable de démarrer) et avoir accès au stockage que l'utilisateur peut utiliser pour ses données personnelles. Cela nécessite qu'il ne soit pas occupé par l'espace de swap.
David Foerster
2
Bien sûr, c'est relatif. Tout comme «trop» est relatif. Si j'ai un système amorçable et que j'alloue tout mon espace libre en tant qu'espace d'échange, il ne m'est plus utile en raison du manque d'espace libre jusqu'à ce que je modifie sa configuration système d'une manière qui se termine par plus d'espace libre. En ce sens, l'espace de swap serait "trop" pendant ce temps rend le système inutile pendant ce temps. Quoi qu'il en soit, je ne suis pas ici pour discuter avec vous de la sémantique des mots.
David Foerster
1
@ An0n Pour souligner le point ici, l'espace d'échange est un espace que vous ne pouvez pas utiliser pour autre chose. L'espace de stockage sur disque coûte de l'argent. Si votre espace disque est limité (le mien n'est que de 32 Go), vous voulez en garder autant que possible gratuitement pour installer des programmes et écrire des fichiers avec vos trucs dedans, comme de la musique. Les gens essaient généralement de garder l'échange au minimum pour cette raison, et aucune autre raison. Le swap est quelque chose dont le système pourrait avoir besoin pour continuer à fonctionner efficacement, autrement sans valeur pour l'utilisateur. En général, nous voulons que notre système n'utilise que les ressources nécessaires et nous laisse beaucoup de temps pour jouer.
Zanna
4

Vous ne ressentirez aucun autre inconvénient autre que moins d'espace sur votre disque, je pense que de nos jours la conception de 2x la quantité de RAM est obsolète dans la majorité des systèmes. Je recommande généralement d'utiliser la même taille de votre RAM pour échanger de la mémoire dans les ordinateurs portables, afin de vous donner la possibilité d'hiberner votre PC sans perdre de données en raison de la nature volatile de la RAM.

Les seuls cas où j'envisagerais d'utiliser plus de 1 fois la taille de la RAM pour la partition de swap, c'est quand vous pensez que vous allez mettre à niveau votre taille de RAM en peu de temps. Ou si vous prévoyez d'utiliser un système où vous stockerez dans une sorte de cache la quantité de mémoire utilisée par les programmes non utilisés au même moment.

J'espère que mon point était assez clair, et je le répète, je ne pense pas que vous rencontrerez un problème pour avoir trop de mémoire d'échange.

Bonne journée!

zurg
la source
2
Je n'utilise pas du tout swap si RAM> 2-4 Go sur un bureau à utilisateur unique.
Panther
1
@Panther Pourquoi pas? Et ce n'est pas de savoir comment ou quand vous l'utilisez. Il s'agit de la taille et de l'utilisation.
An0n
2
Avez-vous considéré l'impact des fuites de mémoire?
Elder Geek
@ElderGeek Salut, non je n'y ai pas pensé. J'aime votre réponse, je ne connaissais pas le problème des fuites de mémoire!
zurg
2

De combien de SWAP l'hibernation a-t-elle vraiment besoin?

C'est une idée fausse que vous avez besoin de RAM x 2 pour la taille SWAP lorsque vous utilisez l'hibernation. La taille du swap doit être la taille de la RAM utilisée et non de la RAM installée . En règle générale, la taille du swap doit être de 2 / 5e de la RAM installée. Pour connaître la quantité minimale de RAM nécessaire à l'utilisation:

$ cat /sys/power/image_size
3153907712

Sur cette machine de 8 Go de RAM, 3 Go minimum sont nécessaires pour l'hibernation.

Vous pouvez modifier les valeurs image_sizepour une taille de swap plus petite avec un risque d'échec. Vous pouvez le modifier pour une taille de swap plus grande et éventuellement accélérer la vitesse d'hibernation.

Référence: https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate


16 Mo de RAM en 1995, règles différentes pour 16 Go de RAM en 2018

À l'époque où vous disposiez de 16 Mo de RAM, x 2 pour un échange de 32 Mo sur votre disque dur de 720 Mo était logique. Un peu d'histoire sur la RAM et le disque dur dans cet article du Washington Post de 1995 .

23 ans plus tard, certains articles techniques datant de 1995 (bien que je n'en ai pas trouvé) pourraient induire en erreur de nouveaux utilisateurs. J'ai cependant trouvé un article de 2007 recommandant SWAP = RAM x 2 .

En 1995, 32 Mo de swap sur un disque dur de 760 Mo correspondaient à 4% du disque dur. En effet, la partition de swap a peut-être été beaucoup utilisée en 1995. Aujourd'hui en 2018, 16 Go de RAM x 2 pour 32 Go de SWAP sur votre SSD de 256 Go n'a pas le même sens car elle prend 13% de SSD. Aujourd'hui, ma partition SWAP de 8 Go n'est pas du tout utilisée à moins que je ne la force à la remplir lors du test d'OOM-Killer: Google Chrome va utiliser ma mémoire au point où elle provoque le gel de mon ordinateur presque à l'arrêt. Que puis-je faire pour éviter cela? .

WinEunuuchs2Unix
la source
+1 pour avoir souligné l'idée fausse de la règle 2x souvent vantée qui est la couchette totale.
Elder Geek
@ElderGeek Merci. J'ai ajouté une section historique sur le moment où 16 Mo de RAM fois 2 pour 32 Mo SWAP peuvent avoir du sens.
WinEunuuchs2Unix
Une autre chose à considérer est SSD contre HDD. Voulons-nous beaucoup de lectures / écritures sur SSD, ce qui accélère l'échec dans cette partie du SSD (ou est-ce un mythe)? Sur mon système, 32 Go de RAM, j'ai utilisé 2 Go de Velociraptor Drive pour SWAP, mais sans intention d'hibernation, je ne sais toujours pas si c'est ok, peut-être que je n'aurais pas pu échanger ??? Mais si j'étais en hibernation, peut-être que 4 Go suffiraient, mais il est probable que j'utiliserais 20 Go de navigateur, puis 4 Go ne suffiraient pas ???
NZ Dev
@NZDev J'ai mon swap sur SSD mais il est rarement utilisé. La dernière fois que j'ai vérifié, il restait encore 100% de la vie après 1 an d'utilisation. Pour voir le pourcentage de vie restant: askubuntu.com/questions/1038701/how-do-i-check-system-health/…
WinEunuuchs2Unix
1

Qu'est-ce que SWAP:

L'espace d'échange sous Linux est utilisé lorsque la quantité de mémoire physique (RAM) est pleine. Si le système a besoin de plus de ressources mémoire et que la RAM est pleine, les pages inactives de la mémoire sont déplacées vers l'espace de swap. Bien que l'espace d'échange puisse aider les machines avec une petite quantité de RAM, il ne doit pas être considéré comme un remplacement pour plus de RAM. L'espace d'échange est situé sur les disques durs, qui ont un temps d'accès plus lent que la mémoire physique.

L'espace de swap peut être une partition de swap dédiée (recommandé), un fichier de swap ou une combinaison de partitions de swap et de fichiers de swap.

Le swap doit être égal à 2x RAM physique.


Avantages:

Fournit un espace de débordement lorsque votre mémoire se remplit complètement Peut éloigner les éléments rarement nécessaires de votre mémoire haute vitesse Vous permet d'hiberner

Désavantages:

Prend de l'espace sur votre disque dur car les partitions SWAP ne se redimensionnent pas dynamiquement Peut augmenter l'usure de votre disque dur N'améliore pas nécessairement les performances (voir ci-dessous)


Lorsque les partitions SWAP "N'aident pas" comme dans "ne valent pas la peine d'être comparées au stockage supplémentaire":

Si votre disque dur n'a que 5400 tr / min et que vous avez peu de RAM, disons> 2 Go. Pourquoi ? Parce que le système voulait constamment accéder à la partition SWAP, cela deviendra finalement très lent. Même si vous avez maintenant de l'espace en mémoire, tout ce qui se trouve dans la partition SWAP doit être replacé. Parce que le système va ralentir, allot reste dans la partition SWAP. Cela ne peut être résolu qu'avec un redémarrage. Ce qui prendra quand même un certain temps car le système doit tout supprimer de la partition SWAP avant de s'arrêter.


** Conclusion: **

Si vous souhaitez pouvoir mettre votre ordinateur en veille prolongée , vous devez disposer d'une partition SWAP. La taille de cette partition doit être la taille de votre mémoire installée, plus 10 à 25% supplémentaires pour laisser de la place à tous les éléments qui ont déjà été déplacés dans la partition SWAP.

Si vous voulez juste une petite amélioration des performances (et que vous avez au moins un disque dur à 7200 tr / min), vous pouvez ajouter une partition SWAP si vous le souhaitez, mais ce n'est pas nécessaire sauf si vous avez moins de 4 Go de mémoire installée. La taille de celui-ci peut être celle que vous souhaitez. Cependant, je recommande 2x la RAM comme point de repère. SI vous avez suffisamment d'espace de stockage.

Si vous avez un disque dur à 5400 tr / min, vous ne devez pas créer de partition SWAP simplement parce que le goulot d'étranglement aggravera votre ordinateur. Cependant, si vous voulez absolument avoir SWAP, vous pouvez toujours créer une partition en utilisant les mêmes directives de dimensionnement décrites ci-dessus - mais modifiez la valeur de swappiness à quelque chose de beaucoup plus bas.



Mon avis:

Cependant, dans tous les cas, si vous utilisez Ubuntu comme système d'exploitation principal pour une utilisation quotidienne, je recommande 2x la taille de la RAM. Parce que vous n'installez pas Ubuntu simplement parce que vous avez un ancien ordinateur. Mais parce que vous souhaitez utiliser le système comme système d'exploitation principal.

Achetez plutôt du matériel supplémentaire si nécessaire au lieu d'ajuster les partitions du système pour le faire fonctionner. Si vous achetez un jeu, vous vous assurez également que votre système est "à jour" au lieu d'ajuster les paramètres pour le rendre "jouable".

Vous pouvez mieux avoir un espace supplémentaire, SWAP, vitesse, puissance au lieu d'avoir trop court ou avoir besoin de tout redimensionner plus tard. Parce que vous avez besoin de SWAP ou d'espace, acheté de la RAM? Ou besoin d'acheter un RAM rapidement parce qu'un slot mémoire ou un bâton s'est cassé.

An0n
la source
Re: votre conclusion Cela n'a tout simplement pas de sens, ou une autre façon de le dire est où tracer la ligne. Ex: RAM 8 Go plus 16 Go de swap: que faire si j'utilise les 8 Go de RAM et 9 Go de swap, alors il n'y a toujours pas assez de place pour hiberner. Alors qu'est-ce qui donne? En d'autres termes, quelle que soit la taille que vous fabriquez, vous pouvez toujours tout utiliser et plus encore. Alors pourquoi le fichier Swap ne dispose-t-il pas de 2 espaces dédiés 1 comme mémoire virtuelle et l'autre comme espace d'hibernation qui serait la somme ou l'autre 2. Il ne se cumule tout simplement pas pour moi et personne n'a jamais répondu à cette question.
NZ Dev
0

Il y a des frais généraux, certes, mais très petits; pour chaque "page" sur le disque, il y a un compteur de référence et deux structures associées à chaque zone de swap; c'est dans la mémoire du noyau, donc ne peut pas être paginé. C'est entre 2 et 16 Mo tous les 4 Go, selon l'architecture. Le reste est assez dynamique, donc dépendant de l'usage.

Donc, vous pouvez en avoir beaucoup, mais gardez à l'esprit que l'espace d'adressage paginé lui-même impose des frais généraux à la RAM, et en plus il y a un suivi en cours pour les pages échangées, donc il ne s'étend pas très loin; même s'ils imposent une certaine surcharge, les systèmes de fichiers sont beaucoup plus efficaces que les zones d'échange lorsqu'il s'agit de gérer des zones plus grandes car les vfs peuvent décharger les informations structurelles sur le disque (normalement, au moins les tables de pages ne peuvent pas être échangées, en raison des limitations matérielles, et le vmm utilise probablement de la mémoire non échangeable pour toute sa comptabilité).

Je ne peux penser à aucun autre inconvénient, OTOH ayant trop peu de swap peut provoquer une fragmentation lors du swapping de pages, ce qui signifie plus de recherche. Lorsque vous en avez beaucoup, après un certain point, il n'y aura aucune amélioration non plus.

L'échange est généralement une dernière ressource (mise en veille prolongée mise à part), vous n'aurez donc probablement pas avantage à avoir plus d'espace d'échange que la RAM, surtout si vous avez plus de 4 Go de RAM, et parfois même aussi grande que la RAM est trop (pensez à 64 Go) .

Ismael Luceno
la source
Désolé, votre dernière déclaration / phrase prête à confusion, sinon un bon complément à ce qui précède.
NZ Dev
@NZDev est-ce mieux maintenant?
Ismael Luceno