Avons-nous toujours besoin de partitions d'échange sur les serveurs?

37

J'ai lu cette question , mais elle a été posée dans le contexte des serveurs, pas des ordinateurs de bureau ou des ordinateurs portables.

Si une quantité importante de RAM est installée sur un ordinateur portable, disons 8 Go, avons-nous encore besoin d'un espace d'échange?

landau
la source

Réponses:

33

Il existe une idée fausse commune selon laquelle le fait de disposer d'un espace d'échange affecte négativement les performances du système. Ceci est une erreur. Tant que vous avez assez de RAM, le fait d'avoir une zone d'échange, quelle que soit sa taille, ne nuit pas du tout aux performances. Ce qui affecte les performances est la pénurie de RAM et l'utilisation efficace de l'espace de permutation.

  1. Si vous n'avez pas d'espace de swap et que vous vous retrouvez avec peu de RAM, le noyau choisira un ou plusieurs processus qu'il considère comme de bons candidats (bien que vous puissiez lui donner quelques indices ) et les tuera.

  2. Si vous avez un espace de swap et que vous n'avez plus de RAM, le noyau choisira des pages de mémoire moins utilisées et les placera sur la zone de swap pour libérer de la RAM. Cela ralentira le système mais vos applications ne seront pas affectées autrement.

Je préfère toujours le cas 2. Je me sens mal à l'aise de perdre certaines parties ou tout mon travail car le noyau pense que mes applications valent la peine d'être éliminées. De plus, avec la taille actuelle d'un disque moyen se situant dans la plage de la tuberculose, réserver quelques pour cent au swap n'est généralement pas un problème.

jlliagre
la source
Votre premier point est-il vraiment vrai? Le noyau va tuer les processus en cours pour libérer de la RAM? Pourquoi le noyau n'utilise-t-il pas simplement l'espace disque au lieu de tuer les processus en direct?
Donato
4
@ Donato Oui, mon premier point est vrai. S'il n'y a pas d'espace de swap configuré (disque), le noyau n'a pas le choix d'utiliser cet espace pour libérer de la RAM.
Juillet
et que se passe-t-il lorsque je termine l'espace de permutation? Reculer dans le cas 1?
Zac
@Zac Oui, sauf si vous avez vraiment désactivé le surmenage de mémoire, auquel cas le premier processus qui n'allait pas allouer de la mémoire sera blessé. Notez que si vous avez une zone (significative) d’espace de swap configurée et que vous en utilisez la plupart, vous aurez probablement de sérieux problèmes de performances.
jlliagre
1
@Zac Si vous épuisez votre espace d'échange, vous êtes essentiellement dans la même situation que de ne pas avoir d'espace d'échange au départ. Un processus ou plusieurs vont mourir. Ils pourraient être choisis par le tueur à mort ou tout simplement être au mauvais endroit et au mauvais moment. Normalement, un système de production correctement surveillé doit déclencher une alerte, puis une réaction de l'administrateur avant que les échanges ne se produisent.
jlliagre
9

Si vous avez une mémoire RAM de 3 Go ou plus, Ubuntu NE UTILISERA PAS automatiquement l’espace de permutation car il est largement suffisant pour le système d’exploitation.

Maintenant, avez-vous vraiment besoin d'une partition swap?

La réponse à mon avis est oui. Parce que vous ne savez pas ce que vous installerez ou ferez dans le futur et qui nécessitera peut-être le besoin d'espace d'échange. De même, si vous envisagez d'utiliser le mode veille prolongée, vous pouvez disposer d'un espace d'échange. En fait, vous n'avez pas besoin de partition swap, mais cela est recommandé si vous utilisez autant de mémoire en fonctionnement normal.

Pour plus d'informations sur la nécessité ou non de l'échange, consultez Faq d'échange Ubuntu ou Configuration requise pour l'échange.

Mitch
la source
Avez-vous un lien confirmant votre première déclaration?
juin
@jlliagre Jetez un coup d'œil à mygeekopinions.blogspot.com/2011/03/… , qui mène à askubuntu.com/questions/23676/…
Mitch
1
La déclaration du blog cite mal la réponse à askunbutu. Rien ne prouve que l'utilisateur4124 est un développeur Ubuntu. "will (généralement) pas d'utilisation" est très différent de "sera automatiquement désactivé". En fait, Ubuntu ne désactive jamais le swap et l’utilisera au besoin, même si vous avez 8 Go de RAM ou plus.
Jlliagre
@jlliagre Cela signifie que l'espace de permutation est là, mais n'est pas utilisé. Lorsque j'ai installé Xubuntu 14.04, il a créé un échange de 16 Go, qui n'a encore jamais été utilisé. voir image
Mitch
1
Content que tu aies corrigé ta réponse. "Ne pas utiliser" n'est définitivement pas la même chose que "désactiver". Ubuntu ne désactive pas l’échange et l’utilisera si besoin est, quelle que soit sa taille.
mardi
4

Depuis environ 6 ans, j'utilise des systèmes de bureau dotés d'au moins 8 Go de RAM. Je ne me souviens pas d'un cas où le système a échangé de la mémoire en utilisation normale - et je surveille assez souvent l'utilisation des ressources avec htop. Même dans les cas où j'ai exécuté simultanément 4 machines virtuelles (serveurs) à des fins de développement, un échange s'est produit.

Cela dit, si les applications que vous exécutez utilisent beaucoup de mémoire (par exemple, l'édition vidéo, l'édition d'images, la manipulation de tables volumineuses, etc.), il est possible que votre système manque de mémoire. Dans ce cas, il peut être souhaitable de disposer d’un espace de swap. Pensez-y comme un filet de sécurité de dernier recours. Et compte tenu de la capacité multi-terrabyte des systèmes actuels, que vaut-il quelques giga-octets dans une partition swap? Mieux vaut prévenir que guérir :-)

hmayag
la source
2

Avoir un espace d'échange est toujours une bonne chose.

Je cite ici le guide d'étude sur la certification RHCSA / RHCE de Michael Jang

Espace d'échange Linux

Cet espace est utilisé pour augmenter la quantité de RAM effective sur un système, en tant que mémoire virtuelle pour les programmes en cours d'exécution. Mais vous ne pouvez pas simplement acheter de la RAM supplémentaire et éliminer l’espace de swap. Linux déplace les programmes et les données rarement utilisés pour échanger de l'espace, même si vous avez 1 Go de RAM.

Pour les systèmes jusqu'à 2 Go, la taille de l'espace d'échange par défaut est le double de la quantité de RAM installée. Au-dessus de 2 Go, c'est la quantité de RAM + 2 Go. Mais ce ne sont pas des règles «strictes et rapides». Les postes de travail dotés de plusieurs Go de RAM utilisent souvent très peu d'espace d'échange .. mais ils peuvent être utilisés plus fréquemment sur des systèmes qui ne redémarrent pas pendant des mois ou sur lesquels la demande de certains services est importante.

Gayan Weerakutti
la source
1
Msgstr "Linux déplace les programmes et les données peu utilisés pour échanger de l 'espace, même si vous avez un gigaoctet de RAM". Je suppose que nous parlons ici de code et de données chargées en mémoire. Dans le cas où vous avez 8 Go de RAM et que vous exécutez des applications ordinaires, pourquoi diable un code ou une page de données serait-il paginé pour être échangé?
Tarik
1

Cela dépend de ce que vous utilisez sur votre système.

Si vous créez du contenu, il est probablement judicieux de conserver un espace d'échange alloué. Par conséquent, si vous manquez de mémoire vive, vos processus sont ralentis au lieu d'être supprimés et potentiellement perdants.

Si votre ordinateur ne fait que lancer des programmes, vous n'avez pas besoin ou même ne voulez pas d'espace d'échange. Je conçois et construis de nombreux systèmes d’affichage de type kiosque qui correspondent parfaitement à cet usage. Je préférerais qu'un processus meure soudainement plutôt que lentement, car je peux alors détecter cette condition et la corriger.

Eric Sokolowsky
la source
1

Si vous avez besoin d'un échange ou de davantage d'espace d'échange, vous pouvez créer des fichiers d'échange sur votre système de fichiers. Bien sûr, ils ne prendront pas en charge l'hibernation, mais il s'agit d'une approche raisonnable pour un ordinateur portable doté d'un lecteur SSD et de beaucoup de RAM.

Grzegorz Żur
la source