Je suis tombé sur un fil concernant l'installation d'un lecteur SSD dans MacBook Pro.
Quelqu'un dans les commentaires a également recommandé de désactiver le fichier d'échange mais n'a pas expliqué pourquoi:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
sudo rm /private/var/vm/swapfile*
Je me demande pourquoi on voudrait désactiver le fichier d'échange sous Mac OS X.
Augmente-t-il les performances? La stabilité?
Des inconvénients?
Enfin, est-il judicieux de désactiver le fichier d'échange lorsque vous n'utilisez pas de disque SSD?
Réponses:
Je suppose que les gens le feraient pour un lecteur SSD, car ces lecteurs n'ont pas la même durée de vie que les lecteurs de disque à rotation magnétique standard. Le nombre de cycles d'écriture étant plus limité, il est donc probable que leur utilisation avec un fichier d'échange utiliserait ces cycles plus rapidement.
Si vous avez beaucoup de RAM, cela pourrait éventuellement améliorer les performances, mais ce n'est pas une bonne idée en général. Si vous vous heurtez au plafond de la mémoire, les choses vont devenir instables.
De plus, la mémoire câblée n'est pas libérée lorsqu'elle devient invalide, elle l'est uniquement lorsqu'un événement de sortie de page est déclenché, ce qui ne se produira pas si la mémoire virtuelle est désactivée. Il ne faudra donc pas longtemps pour que toute votre mémoire soit engloutie, même si elle n'est plus utilisée.
la source
La raison pour laquelle ils ont désactivé le fichier d'échange est probablement due à la paranoïa du fait que les disques SSD ont un nombre maximal d'écritures par bloc. Les fichiers d'échange peuvent être écrits fréquemment, entraînant éventuellement une fragmentation du disque (ainsi que du système de fichiers) et, éventuellement, une défaillance plus rapide du disque.
Cela dit, il s’agit bien là d’une optimisation prématurée. Il est presque toujours une idée HORRIBLE , HORRIBLE de désactiver votre fichier d'échange. Le fichier d'échange est là pour que vos programmes en cours utilisent plus de mémoire que vous n'avez physiquement installée. Si vous le désactivez, vous ne pourrez peut-être pas exécuter autant de programmes en même temps (et la limite sera beaucoup plus basse que prévu), ou vous rencontrerez peut-être des problèmes (comme le gel et le redémarrage de l'ordinateur). vous manquez de mémoire.
Ce dernier que j'ai connu (avec le fichier d'échange activé) lorsque je manque d'espace disque. J'ai eu un lecteur de 120 Go avec ~ 3 concerts gratuits. Tout en jouant à Civilization IV (un grand jeu en plein écran), le système n’a plus d’espace disque disponible (environ 50 Mo disponibles) et présente la fenêtre "Tuer les applications maintenant". Cela se cachait derrière le jeu en plein écran, alors le système vient de se verrouiller. Si je n'avais pas été en mesure de faire ssh depuis un autre Mac pour tuer plusieurs applications à distance, j'aurais dû maintenir le bouton d'alimentation enfoncé.
la source
Vous avez deux bonnes réponses qui expliquent pourquoi il s’agit d’une mauvaise idée dans presque tous les cas où le système peut écrire sur un périphérique de stockage.
La raison pour laquelle vous pouvez désactiver le swap est que le système peut fonctionner sur un support en lecture seule, tel qu'un CD, un DVD, une image réseau verrouillée utilisant NetBoot ou une clé USB en lecture seule, comme le nouvel installateur Lion ou une clé de récupération livrée avec certains macs dépourvus d'optique. disques.
Avoir de la mémoire virtuelle signifie que le système peut fonctionner beaucoup plus rapidement et utiliser moins de RAM lorsque de nombreux programmes utilisent le même code de bibliothèque commun. Chaque programme pense disposer d'une copie privée de tout le code dont il a besoin, mais lorsqu'il existe une mémoire virtuelle, le système dispose d'un moyen agréable de mapper la même RAM physique à différents programmes.
La désactivation de swap empêche le mac d'utiliser une petite partie de votre disque en tant que cache pour une partie de la mémoire calculée, mais le programme n'était pas assez intelligent pour écrire ces résultats dans un cache approprié.
Si vous avez une sauvegarde et le temps d'expérimenter, pourquoi ne pas l'éteindre et voir comment votre expérience change.
Je garderais mon échange même si je savais avec certitude que je devais payer un nouveau disque chaque année. La rapidité que me donne l'échange est énorme. Ce n'est pas toujours le cas, et parfois, lorsque le système se débat ou pagine, vous pouvez avoir le contraire. Beaucoup de gens choisissent de s'exécuter sans swap pour obtenir une erreur d'allocation de mémoire plutôt que de laisser leur mac démarrer la pagination, ce qui peut ralentir la machine lorsque tout ne fonctionne pas correctement.
Votre cas avec un SSD peut être différent, alors laissez-nous savoir si vous l'essayez.
la source
dynamic_pager
, douze secondes sans. Pour une comparaison plus large et plus mesurée, nous pourrions utiliser Phoronix Test Suite ou Geekbench .Je serai le vainqueur ici: j'ai désactivé swap sur mon MacBook Pro unibody fin 2008 et cela a nettement amélioré les performances: moins d'attente, plus de commutation entre les applications.
Remarquez que je garde un oeil sur ma mémoire libre et que j'ai 6 Go installés. Les quelques fois où j'ai atteint la limite de mémoire, le système s'est écrasé :-D
Sur mon nouveau MacBook Air, je ne rêverais pas de désactiver le swap, il est déjà rapide avec ce dernier et ne dispose que de 4 Go pour commencer.
Une autre bonne raison de désactiver le swap sur un disque SSD est qu’ils ont de très petits disques SSD et qu’ils ont besoin de tout l’espace disponible. En tout cas, ne le fais pas.
la source
Mon expérience est similaire à celle de w00t. J'ai désactivé le fichier d'échange sur SL et Lion, car l'augmentation des performances fonctionne pour moi. L'utilisation câblée devient incontrôlable après environ une semaine, mais un simple redémarrage résout le problème. Je n'ai pas de disque SSD mais un disque lent à 5 400 tr / min. La durée de vie des disques SSD n'est pas aussi mauvaise que ce que les gens essaient de croire. Si vous le faites simplement parce que vous avez peur d'user votre disque SSD, rendez-vous à l' adresse suivante : http://www.anandtech.com/show/4159/ocz-vertex-3-pro-preview-the-first-sf2500- ssd / 2 et http://communities.intel.com/thread/21717?tstart=1 Intel évalue leurs lecteurs à plus de 20 Go par jour, chaque jour, jusqu'à 5 ans sur un lecteur de 80 Go. Les disques de grande taille dureront encore plus longtemps. L'utilisateur moyen n'utilise même pas 10 Go / jour.
Je veille à surveiller mon utilisation de 4 Go de mémoire avec les menus iStat et à utiliser un script Automator avec la commande "purge" bash (nécessite l'installation de Xcode) pour supprimer la mémoire inactive et ouvrir fréquemment davantage de mémoire disponible. Les rares fois où des applications avec des fuites de mémoire utilisaient toute la mémoire vive, je devais effectuer une réinitialisation matérielle. Les rares occasions où cela se produit et l'accélération en général font qu'il vaut la peine de garder le fichier d'échange désactivé pour moi. Je me rends compte que je ne peux pas avoir autant d'applications ouvertes en même temps que d'autres, mais je suis capable de travailler avec ça.
la source
J’en viens à mes 2 centimes pour ceux qui souhaitent désactiver l’échange car de petits disques SSD: l’image en veille utilise beaucoup plus d’espace disque.
Et, pour ceux qui s'inquiètent de la durée de vie limitée du disque SSD (en particulier ceux dotés d'un MBA et de puces SSD câblées qui NE PEUVENT PAS être remplacées), si votre ordinateur dort plusieurs fois par jour, la réécriture de l'image du sommeil peut être un problème. Mon ordinateur portable dort facilement une demi-douzaine de fois par jour. Cela écrit 48 Go de données sur mon disque SSD quotidiennement.
La solution dans chaque cas consiste à désactiver l'hibernation, puis à supprimer le fichier sleepimage qui est aussi volumineux que votre RAM installée (8 Go dans mon cas).
Le risque est que si votre batterie meurt pendant que votre ordinateur portable est en veille, votre état actuel sera perdu. Cela équivaudra à un redémarrage forcé forcé. Aucun dommage physique à l'ordinateur portable, juste une perte de productivité. Si vous désactivez le mode veille prolongée, puis que votre batterie est faible et que vous ne pouvez pas charger, ayez juste le code à portée de main pour activer le mode veille prolongée!
Pour désactiver l'hibernation, dans le terminal, la commande est la suivante:
Pour activer le mode hibernation, la commande est la suivante:
Pour supprimer la dernière image de veille afin de libérer de l'espace sur les disques SSD / HDD (cela n'a de sens que si vous désactivez le mode veille prolongée, sinon une nouvelle image occupera cet espace la prochaine fois que votre ordinateur dormira):
Source: homme pmset
la source
La désactivation de permutation n'augmenter les performances. Par exemple, j'utilise régulièrement Aperture et lorsque la permutation augmente, les performances se détériorent et lorsqu'elles dépassent 1 Go, je dois redémarrer l'OS pour la nettoyer et rétablir les performances. Remarque: la machine dispose de 6 Go de RAM et PAS de la totalité de celle-ci, environ 3 Go sont gratuits, mais l’échange 1G dégrade considérablement les performances.
la source
Je désactive le swap sur les machines depuis de nombreuses années, à la fois sous OS X et d'autres variantes UNIX.
J'utilise un outil pour m'alerter lorsque la mémoire est insuffisante et je ne m'inquiète pas de la panne de mon système.
Mon iMac a 12 Go, et avec le swap désactivé, j'ai presque toujours 4 Go gratuits, même avec plusieurs outils de développement, applications, navigateurs, etc.
la source
Le motif répété ici est la suivante:
Ceux qui ont désactivé le fichier d'échange ont connu de meilleures performances (avec suffisamment de RAM physique)
Ceux qui n'ont PAS désactivé l'espace de permutation sont certains que cela ne fonctionnera pas et que quelque chose de terrible se produira et ils vous conseillent vivement de ne pas le faire.
Cela est dû simplement à deux choses:
la source
Juste une expérience personnelle.
Remarque rapide: si votre Mac utilise des graphiques intégrés, sa mémoire est partagée avec votre mémoire principale avec kernel_task. Ainsi, vous devrez soustraire ce montant de votre total utilisable.
Utilisateurs de disques SSD, il est satisfaisant d’avoir plus d’espace, mais il est important de savoir que la mémoire virtuelle prospère sur les disques SSD. Vous pouvez en tirer un gain de performances considérable. Cela fait-il mal au SSD? Oui, mais vous allez longtemps remplacer votre Mac avant de vous en rendre compte.
la source
Résumé
Une zone d'échange (appelée partition d'échange, fichier d'échange ou fichier de page) est simplement un mécanisme permettant d'augmenter la mémoire physique adressable par le système d'exploitation.
Si vous avez peu de RAM physique disponible et sur la machine d'aujourd'hui, je dirais si vous avez 4 Go de RAM ou moins. Ensuite, vous devriez probablement avoir un échange. Mais cela dépend de votre charge de travail et de la manière dont vous utilisez votre machine.
Si vous disposez de plus de 4 Go de RAM, il est fort probable que votre système n'utilise jamais l'échange. Donc, si le swap est activé ou non, cela ne changera pas beaucoup.
Bien que cela dépende d'autres facteurs, plus votre ordinateur fonctionnera longtemps, plus le système d'exploitation échangera vraisemblablement une petite partie inutilisée de la mémoire RAM contre un événement d'échange, même s'il reste apparemment beaucoup de place. Cependant, le système utilise souvent la RAM "libre" pour les tampons de fichiers et autres, et certaines charges de travail peuvent faire en sorte que votre tampon de fichiers utilise toute la RAM disponible.
Informations d'arrière-plan
De toute façon, que se passerait-il si vous désactiviez l'échange et que votre mémoire était complètement utilisée? Eh bien, la prochaine fois qu'une application demandera plus de mémoire (comme avec un malloc ou un realloc), elle recevra une erreur! S'il est correctement codé, l'application le détectera, mais le traitement d'une telle erreur et la fermeture du programme en douceur pourraient être un défi! Cependant, de nombreux développeurs ne testent pas l'allocation de mémoire réussie et l'application se bloque dès que cette mémoire non allouée va être utilisée. Il y a donc de fortes chances que l'application se bloque et que de nombreuses applications tombent en panne, car plusieurs applications s'exécutent généralement en même temps. J'espère que le noyau lui-même devrait être immunisé, mais d'après mon expérience, ce n'était pas toujours le cas.
Si vous avez un échange, vous aurez le même comportement , mais vous avez une limite plus élevée et il est donc probable que vous n'atteignez pas cette limite.
J'ai personnellement 2 machines avec 8 et 16 Go de RAM. Mon utilisation personnelle de ces machines ne devrait jamais m'amener à utiliser toute cette mémoire vive (aujourd'hui! Peut-être dans quelques années, cela pourrait être différent). La seule raison pour laquelle je voudrais atteindre les limites physiques de la RAM est qu'un processus est devenu frauduleux et consomme toute la RAM. En l'absence de swap est un soulagement, le noyau va rapidement tuer le processus non autorisé dès qu'il atteint la limite de RAM. Si vous avez un échange, vous vivrez une expérience douloureuse (peut-être pas sur SSD ...), car votre système échangera et échangera et deviendra parfois totalement insensible jusqu'à ce que votre noyau tue le coupable!
Conseille
Vous ne devriez pas avoir peur que des gens vous disent que quelque chose de terriblement mauvais pourrait arriver si vous supprimez l'échange. Si vous le faites, votre espace d'adressage physique sera réduit, comme si vous passiez de 4 Go de RAM à 2 Go. Feriez-vous une telle chose? Ensuite, vous ne devriez pas retirer le swap. Vous pouvez cependant décider de le limiter, et ce serait sage .
Si on pense que sa charge de travail l’amène à utiliser plus de RAM physique ou plus que la RAM physique disponible, ou s’il faut beaucoup d’E / S (lecture / écriture sur disques), l’échange doit être conservé.
Lorsqu'un échange doit être conservé, un utilisateur doit essayer de définir des limites à la quantité de mémoire qu'un processus peut utiliser. Sur un système Linux, on pourrait utiliser les limites de mémoire des groupes de contrôle pour éviter que certains processus ne deviennent incontrôlables. Je ne connais pas l'équivalent sous OS X, mais cela devrait être la solution.
Toutefois, si un utilisateur dispose de suffisamment de mémoire pour sa charge de travail, il peut désactiver le swap en toute sécurité ou le conserver. Cela ne changera pas beaucoup, même en termes de performances, car si le système n'utilise pas le swap, vous ne serez pas affecté par une baisse des performances (particulièrement visible sur un ancien disque dur rotatif, moins sur SSD).
Utiliser la même astuce que ci-dessus pour essayer de définir des limites de mémoire par processus ou groupe de processus est également bénéfique dans le cas où la RAM disponible est plus que suffisante.
Mon propre exemple
J'ai un vieux PC avec 1 Go de RAM, là j'ai un gros swap: 4 Go pour pouvoir exécuter Firefox et d'autres applications dessus. J'ai tendance à utiliser le moins d'applications possible (ou d'onglets dans Firefox) pour avoir une expérience utilisateur correcte.
J'ai un petit serveur avec 8 Go de RAM. Là, je connais exactement ma charge de travail et je ne veux pas que mon serveur ralentisse, car un processus est devenu malveillant et consomme toute la mémoire. Là, je n’ai aucune barrière imposant la mémoire swap et cgroup, ce qui empêche les applications ou les services de tomber en panne, mais pas le noyau. Btw, c'est une machine Linux.
Ensuite, j'ai mon Mac avec 16 Go de RAM. Je n'en suis pas le seul utilisateur, et cela ne nous dérangerait pas d'attendre lors du changement d'utilisateur. Là, nous avons un échange, il m'est difficile de planifier la charge de travail des autres utilisateurs de cet ordinateur. Même si je serais le seul à utiliser swap. J'utilise souvent plusieurs machines virtuelles et utilise des applications consommant de la mémoire, mais pas toutes en même temps. Par conséquent, je ne voudrais pas que le système d'exploitation permute en une application inutilisée pour pouvoir obtenir des E / S de disque plus rapides ou lancer une autre machine virtuelle. Jusqu'à présent, je n'ai pas vu cette machine échanger!
la source
Je viens de désactiver le fichier d'échange sur mon Macbook air 2011 (4 Go de RAM, 128 Go de SSD) parce que j'en avais marre du fichier d'échange de consommer lentement tout mon espace disque restant, puis de le redémarrer. De cette façon, l’idée est que je vais exécuter moins de programmes.
Je verrai si cela fonctionne vraiment, ou si je devrai redémarrer de toute façon pour vider la mémoire "Wired", mais pour l'instant cela semble bien fonctionner. La seule fois où la mémoire était vraiment pleine, l'ordinateur a ralenti de la même manière que lorsque mon SSD est à court de mémoire - mais la récupération a été beaucoup plus rapide dès que j'ai quitté les applications. (Et j’ai effectivement pu quitter des applications, ce que je ne suis généralement pas lorsque le SSD est plein).
Je vais voir comment ça se passe en termes de stabilité, mais jusqu'à présent, je suis un bon campeur. Cela me force également à exécuter moins d'applications (et d'onglets Chrome) à la fois, ce qui est bon pour la focalisation sur les tâches.
la source
La principale raison de désactiver le fichier d'échange n'est pas la vitesse, mais l'espace disque.
S'il s'agit d'un utilisateur qui s'exécute régulièrement à moins de 5 Go d'un lecteur complet, la désactivation de l'échange interrompt le harcèlement constant du manque d'espace; Je termine régulièrement avec un fichier d'échange de 4 Go ou plus provenant de la navigation de routine.
L’amélioration de la vitesse est stupéfiante sur les anciennes machines; ce n'est pas si impressionnant sur les machines modernes équipées de SSD. (Sous OSX 10.0 sur un iMac, l’utilisation de la mémoire virtuelle réduisait de moitié la vitesse de nombreuses opérations, y compris la copie de fichiers entre lecteurs).
la source