Devez-vous désactiver le fichier d'échange avec SSD?

26

J'ai lu cette question et elle contient beaucoup d'informations intéressantes.

Mais en supposant que vous avez plus qu'assez de RAM, je pense que le fichier d'échange devrait être désactivé sur SSD pour prolonger la durée de vie. Je sais que vous perdriez le vidage de mémoire en cas de crash, mais peu de gens ont besoin de ces informations.

D'après ma compréhension, sans fichier d'échange, lorsque vous atteignez la limite de votre RAM, cela pourrait déclencher un thrash sur le disque. Mais pour les SSD, il n'y a pas de concept de thrashing, les lectures sont rapides.

Qu'en pensez-vous?

Pyrolistique
la source
Je laisserais ça. Les SSD modernes devraient tenir la distance. Voir: storagesearch.com/ssdmyths-endurance.html .
Matt
1
De plus, à condition que votre charge de travail soit appropriée à votre serveur, vous ne devriez de toute façon pas paginer sur le disque (enfin, ne paginer que lorsque cela est avantageux). Le mois dernier seulement, mes serveurs n'ont en moyenne fait qu'une centaine d'entrées / sorties de page pour tout le mois.
Matthew Ife

Réponses:

22

Mais en supposant que vous avez plus qu'assez de RAM, je pense que le fichier d'échange devrait être désactivé sur SSD pour prolonger la durée de vie. Je sais que vous perdriez le vidage de mémoire en cas de crash, mais peu de gens ont besoin de ces informations

Cela ressemble plutôt à une optimisation prématurée. Vous n'avez pas discuté des SSD que vous prévoyez d'utiliser, et sans regarder réellement la charge de travail de votre serveur et la fiche technique de votre SSD prévue, vous ne pouvez avoir aucune idée de l'effet qu'un fichier d'échange aura sur la durée de vie de votre SSD.

Il y a aussi un grand volume de désinformation, à la fois sur le grand Internet et ici sur Server Fault, sur les SSD souffrant d'une mauvaise durée de vie. Les premiers SSD peuvent avoir eu des problèmes et les lecteurs flash USB commencent certainement à se dégrader, mais les SSD de classe entreprise ont de bien meilleurs algorithmes de nivellement de l'usure et certains utilisent un flash de rechange pour améliorer les performances et l'usure.

Les lecteurs Intel X25-E , par exemple, revendiquent une durée d'écriture de 1 pétaoctet d'écritures aléatoires pour le lecteur de 32 Go. Si vous saturez sans interruption l'interface d'écriture (200 Mo / sec), avec écrasement, mon estimation est que cela vous durera environ 58 jours. Mais cela écrit quelque chose comme 17 To de données par jour sur ce disque.

La charge de travail typique du serveur sur le lecteur du système d'exploitation sera beaucoup, beaucoup moins, même si vous avez un fichier d'échange. Appelez-le 50 Go par jour. Si le chiffre de 1 PB est exact (et je sais qu'il peut être considéré comme un chiffre moyen, plus de discussion plus tard), c'est toujours quelque part au nord de 50 ans.

Ces chiffres semblent évidemment exagérément élevés, alors regardons les chiffres réels cités par Intel pour la longévité attendue des disques . Intel était heureux de qualifier les disques MLC (non-entreprise) pour écrire 100 Go de données, chaque jour, pendant cinq ans. La compréhension standard du flash SLC vs MLC dit que le flash SLC dure environ 10 fois plus longtemps que le MLC (le lien ci-dessus le montre également sur un graphique).

La vérité sera confirmée par le temps, bien sûr - nous commencerons à voir les disques échouer tôt ou nous ne le ferons pas. Mais les chiffres derrière les disques ajoutent à la longévité d'entraînement ne pas être un problème avec les disques SSD de qualité décente à tous .

Si vous utilisez un SSD MLC, vous avez peut-être raison de vous inquiéter. Mais gardez à l'esprit que si Intel est heureux d'évaluer le disque à 100 Go / jour pendant cinq ans, cela reste fondamentalement le même que 50 Go / jour pendant 10 ans. Et, pour revenir à mon point de départ, vous devez toujours savoir quel type de charge de travail réelle vous allez faire sur le disque.

Personnellement, je dirais fortement de ne pas utiliser de SSD MLC dans un environnement de serveur de production. Si un SSD SLC décent est trop cher, restez fidèle aux disques en rotation pour l'instant.

(Soit dit en passant, si vous faites les chiffres, disons 100 Go par jour pendant 50 ans, ce qui est la note «SLC dure 10 fois plus longtemps que MLC», il semble qu'Intel dise que leur disque de 32 Go a en fait une durée de vie totale en écriture de près de 2 PB de données, pas le 1 PB cité dans la spécification du produit. Même si je ne fais confiance qu'à la plus petite de ces deux valeurs pour être heureux que mes disques X25-E durent bien au nord de 10 ans.)

Daniel Lawson
la source
Je pense que je vais réviser ma déclaration sur l'utilisation des SSD MLC: ils semblent être assez bons pour une utilisation en entreprise. J'ai entendu dire qu'un fournisseur majeur de SSD SLC remplaçait sa gamme SLC par des flashs MLC et des contrôleurs plus intelligents.
Daniel Lawson
15

En plus de la longévité qui n'est probablement pas un problème, comme le mentionne Daniel Lawson, et les commentaires de l'équipe MS elle-même (ci-dessous), envisagez

  1. De toute façon, le fichier d'échange ne sera utilisé qu'en cas de besoin
  2. Si le fichier d'échange est utilisé, l'avoir sur le SSD par rapport à un disque dur en rotation fera une énorme différence

Le fichier d'échange doit-il être placé sur des SSD?

Oui. La plupart des opérations de fichier d'échange sont de petites lectures aléatoires ou de plus grandes écritures séquentielles, qui sont toutes deux des types d'opérations que les SSD gèrent bien.

En examinant les données de télémétrie de milliers de traces et en se concentrant sur les lectures et les écritures du fichier d'échange, nous constatons que

  • Pagefile.sys lit plus de pagefile.sys écrit d'environ 40 à 1
  • Les tailles de lecture de Pagefile.sys sont généralement assez petites, avec 67% de moins ou égal à 4 Ko et 88% de moins de 16 Ko.
  • Les écritures de Pagefile.sys sont relativement importantes, avec 62% supérieur ou égal à 128 Ko et 45% étant exactement de 1 Mo. En fait, étant donné les modèles de référence de fichier d'échange typiques et les caractéristiques de performances favorables des SSD sur ces modèles, il y a peu de fichiers meilleurs que le fichier d'échange à placer sur un SSD.

Support et Q&A pour les disques SSD (MSDN)

Mark Sowul
la source
9

Plutôt que de désactiver complètement le fichier d'échange, il peut être utile de dire au système d'exploitation de ne pas l'utiliser (par exemple, sysctl vm.swappiness=0).

Le système d'exploitation évitera de l'utiliser à moins que nécessaire, en enregistrant les écritures inutiles du SSD.

MikeyB
la source
4
C'est génial. Existe-t-il un tel ajustement pour Windows?
Pyrolistical
Je ne suis pas sûr, mais vous pourrez peut-être émuler cela en définissant la taille du fichier d'échange au minimum (2 Mo) et en lui permettant de croître.
MikeyB
5

Je laisserais toujours le fichier d'échange activé; certaines parties de votre système d'exploitation ou de vos applications peuvent être écrites pour s'attendre à ce qu'il y en ait, et en tant que telles peuvent se comporter mal s'il n'y en a pas.

Cela dit, j'ai utilisé Windows (XP) sans fichier d'échange dans le passé, et il a été parfaitement satisfait de tout ce que j'ai lancé. Il y avait toujours le doute insignifiant que quelque chose arriverait qui ne l'aimerait pas.

Une option pourrait être de le régler très petit.

Maximus Minimus
la source
Je ne pense pas que les applications puissent détecter si elles utilisent ram ou swap. Alors, comment cela pourrait-il être important?
Pyrolistical
Le système d'exploitation a été réglé pour que la mémoire virtuelle soit activée, vraiment. Vous avez un point avec les SSD, ou j'imagine que vous avez raison - j'ai lu beaucoup de choses en disant qu'il y a un problème d'écriture répétitive avec eux, et la mémoire virtuelle le fait certainement. Ne pouvez-vous pas placer le fichier d'échange / échange sur un disque approprié? (semble contre-intuitif bien sûr ...)
Kyle Hodgson
Pourquoi un système d'exploitation supposerait-il qu'il existe un fichier d'échange? Linux ne le fait certainement pas, et je n'ai jamais vu de raison de croire que Windows le soit non plus
Mikeage
2
Voici une raison de croire que Windows le fait: blogs.msdn.com/ericlippert/archive/2009/06/08/…
dmo
3

Ce n'est pas directement sensible à l'OP, mais je voulais corriger une impression erronée dans la réponse / commentaires ci-dessus par Ronald et Daniel. (Je suis nouveau, donc je n'ai pas assez de points pour commenter.)

TRIM est en fait la plus grande chose que vous puissiez faire pour prolonger la durée de vie d'un SSD. Voici pourquoi: les disques SSD «récupèrent régulièrement» - copiez les données (fragmentées) de blocs d'effacement partiellement vides et écrivez-les de manière contiguë dans un bloc nouvellement effacé.

Les adresses sont remappées afin que l'hôte ne soit pas au courant de cela. Cette activité d'écriture supplémentaire, non directement associée aux écritures de l'hôte, est appelée "amplification d'écriture". Dans le pire des cas, un SSD complètement complet avec une petite quantité d'espace sur-provisionné (de secours caché), l'amplification d'écriture peut facilement être comprise entre 500% et 700% du taux d'écriture de l'hôte!

Lors de la récupération de place, le SSD ne prend pas la peine de copier et réécrire les pages qui ont été invalidées (écrasées ou TRIMmed), économisant ainsi beaucoup de travail et d'écriture. Si le système de fichiers efface un fichier volumineux, mais qu'il n'informe pas le lecteur via TRIM, le lecteur continuera à copier ces données effacées, gaspillant les écritures, indéfiniment (ou jusqu'à ce que ces adresses de bloc soient affectées à un autre fichier, ce qui pourrait être long).

En résumé, TRIM est vraiment important à la fois pour la longévité et les performances.

JHD
la source
2

Je l'ai indiqué sur l'autre post que vous avez lié, mais nous exécutons un serveur très principal sans fichier d'échange et tout ici semble bien. En fait, cela semble plus rapide sans lui. Nous avons 8 Go de RAM et je dirais que vous devriez décider si vous avez beaucoup de RAM, pas si votre disque dur est un SSD ou non. Bien que je puisse comprendre le désir d'en sauver la vie en ne faisant pas d'écritures inutiles.

Mat
la source
2

Utilisez simplement un deuxième disque dur pour la mémoire virtuelle.


la source
1
Je pense que le but était d'améliorer les performances de swap en utilisant un SSD, si l'écriture du fichier d'échange sur un SSD ne brûlait pas via les disques disponibles. L'utilisation d'un disque dur normal n'offrirait pas les avantages de performance qu'un SSD offrirait.
jrista
Pas possible sur la plupart des ordinateurs portables.
Brian Knoblauch
0

J'utilise un ordinateur portable avec 8 Go de RAM, un seul disque SSD et aucun fichier d'échange, depuis plus d'un an maintenant, aucun problème. J'ai rencontré un jeu qui nécessitait le fichier d'échange, je suis allé sur le site Web du logiciel et j'ai obtenu la commande run pour le désactiver, le problème a été résolu.

Mon ordinateur portable a quatre ans. Ancien, mais il s'exécute plus rapidement que certains ordinateurs de bureau plus récents. Les fuites de mémoire, ou fichier SWAP, sont le problème avec le système d'exploitation Windows depuis la création de la technique. Malheureusement, les développeurs Linux ont suivi ses traces. Moins vous exécutez de logiciels en arrière-plan, mieux c'est (surtout si c'est Microsoft).

Cyberat Rodent
la source
-1

Je dirais de ne pas utiliser le swap, si vous pouvez vous en tirer. Ou peut-être baisser le chemin de l'échange. Bien qu'il soit difficile d'en porter un (combien de temps faudrait-il pour écrire sur le disque entier 100 000 fois, avec la bande passante maximale dont vous disposez?), Si vous n'en avez pas besoin.

Là encore, l'hibernation (suspension sur disque) ne fonctionne pas sans une sorte de swap.

Auparavant, il y avait un comportement étrange sans échange (comme dans un disque RAM de 50 Mo pour un échange, ce serait une victoire), mais cela a été corrigé l'été dernier (ou était-ce 2007?), Donc un système d'exploitation actuel devrait convenir.

Maintenant, tout ce dont nous avons besoin est du matériel qui prend en charge la commande d'effacement (Linux l'a prise en charge depuis des mois), et la vie sur SSD sera tout simplement dandy.

Ronald Pottol
la source
La commande TRIM ne fera rien pour prolonger la durée de vie d'un SSD - tout ce qu'elle fait, c'est émettre un effacement de bloc pour nettoyer les blocs sales hors bande. Le comportement normal consiste à ce qu'un SSD émette l'effacement au fur et à mesure qu'il réécrit le bloc. Le résultat net est qu'avec TRIM, vous obtenez potentiellement de meilleures performances, mais le SSD émettra toujours le même nombre de commandes d'effacement et d'écriture.
Daniel Lawson
Très vrai, cela ne fera que les rendre plus performants.
Ronald Pottol
Daniel (et Ronald): Si le SSD sait qu'une section de "disque" a été libérée ou mise à zéro, grâce à TRIM, il ne la copiera probablement pas lors du nivellement d'écriture ou de la gestion de petites écritures. Ce qui signifie moins d'écritures et une durée de vie plus longue, non? Quelques sources d'accord avec moi qui semblent solides: atpinc.com/Memory-insider/… superuser.com/questions/1063744/… wiki.archlinux.org/index.php/Solid_state_drive#TRIM - une excellente ressource pour les cas marginaux , etc.
Matthew Elvey
-2

J'ai eu deux SSD de classe entreprise qui m'ont grillé très prématurément (c'est-à-dire bien pendant la période de garantie). Je pense que la raison en était un échange important à cause de la raclée. Je me suis souvent rendu compte que j'avais des processus inutiles exécutant des démons / buggy avec des fuites de mémoire, de sorte qu'il y avait une forte activité de permutation presque continue. iostat -n9 -w 10De temps en temps, je cours en arrière-plan et je remarque qu'il y a souvent une activité continue et intense sur le disque. L'activité du processus du noyau (swap) a également été consignée comme source de la plupart des E / S. Je me souviens d'un démon qui avait une fuite de mémoire pendant des mois et avait besoin d'être tué périodiquement. Souvent, je ne dépanne pas à moins que le système ne soit ennuyeusement lent, si souvent que le thrashing a duré longtemps avant de prendre le temps de redémarrer le démon. Et plus longtemps pour que la fuite soit réparée.

Bien que la désactivation de l'échange attirerait mon attention sur la raclée, le problème serait donc résolu avant qu'une usure importante du SSD ne se produise, c'est loin d'être le meilleur moyen de prévenir de tels dommages; tout outil de surveillance / alerte décent serait préférable.

Une mise en garde que la plupart des réponses ne parviennent pas à reconnaître est que si un serveur nettoie un SSD en continu, il s'éteindra assez rapidement - des burnouts dans un an dans cette situation sont courants. Le thrashing classique se produit généralement lorsque l'échange de mémoire virtuelle est suffisamment lourd pour garder le lecteur (d'échange) principalement occupé - bien dans un ordre de grandeur de sa bande passante d'E / S maximale, et qu'il y a au moins un processus en attente d'un E / S lié à l'échange O pour terminer la plupart du temps que le système est dans cet état. Les autres réponses supposent que le système n'est pasraclée, du moins pas de manière classique; ou compter sur une mauvaise compréhension de ce qu'est la raclée. Et cette fausse hypothèse, malgré d'autres données précises, conduit à des réponses incorrectes quant à la POURQUOI la pagination, même lorsqu'un SSD est le seul emplacement possible pour le fichier d'échange, est préférable de le laisser activé.

Matthew Elvey
la source
-3

Désactivez le fichier d'échange sur le disque lorsque vous avez beaucoup de mémoire inutilisée. Certains anciens programmes exigent une fonctionnalité de fichier d'échange et pour ceux-ci, Windows créera une petite fonctionnalité de fichier d'échange en mémoire.

Waxinator
la source
2
Je ne pourrais pas être plus en désaccord avec vous. Pourquoi ne pas jeter un œil à la réponse acceptée à la question à laquelle cette affiche renvoie.
Chopper3
2
Windows va créer un fichier d'échange en mémoire? Comment ça?
Mark Sowul