Désactiver l'échange sur Yosemite


12

Sous OS X Mavericks et ci-dessous, nous pouvions simplement launchctl unloadle plist dynamic_pager, mais essayer de décharger ce plist n'a aucun effet depuis OS X Yosemite.

Quelle est la nouvelle façon de désactiver les fichiers d'échange maintenant avec OS X Yosemite?


Les commentaires ne sont pas pour une discussion approfondie; cette conversation a été déplacée vers le chat .
bmike

Réponses:


11

Avez-vous essayé quelque chose comme ça?

# Check installed RAM, disable VM if 8Gb or more.

mem_inst=`/usr/sbin/sysctl -n hw.memsize`

if [ "$mem_inst" -ge "8589934592" ]; then
    echo "8Gb+ Memory installed."
        if [ "$action" == "unload" ]; then
            sudo nvram boot-args="vm_compressor=2"
            sudo pmset -a hibernatemode 0
            echo "vm.compressor_mode set to 2"
        else
            sudo nvram boot-args="vm_compressor=4"
            sudo pmset -a hibernatemode 3
            echo "vm.compressor_mode reset to defaults"
        fi
            launch_control $action /System/Library/LaunchDaemons com.apple.dynamic_pager
    else
    echo "Less than 8Gb memory."
fi

Ce n'est pas quelque chose que j'ai écrit, c'est une information que j'ai trouvée.


5
J'ai juste essayé d'utiliser sudo nvram boot-args="vm_compressor=2", ce qui pourrait certainement être la bonne solution, en regardant apple.stackexchange.com/q/118839/97060 . J'ai appliqué cette commande et redémarré. Acceptera s'il n'y a toujours pas d'échange dans quelques heures, juste pour vérifier ;-) (Soit dit en passant, tout le reste dans ce message sauf que les commandes uniques sont des commandes inutiles ...)
bwoebi

1
Pour les abonnés, vm_compressor 2 est VM_PAGER_COMPRESSOR_NO_SWAP et 4 est VM_PAGER_COMPRESSOR_WITH_SWAP (réf: www.apple.stackexchange.com/q/118839/25085). Sur sierra, j'obtiens à nvram: Error setting variable - 'boot-args': (iokit/common) general errormoins de désactiver d'abord la protection de l'intégrité du système, puis cela fonctionne
rogerdpack

3

Voici ce que je fais:

sudo pmset -a hibernatemode 0
(désactive le mode hibernation)

sudo rm -rf / private / var / vm / .
* (supprime les fichiers d'échange existants)

sudo chflags uchg / private / var / vm /
(verrouille le répertoire swapfile, empêche tout ce qui est écrit dans le dossier)

Comme d'autres l'ont dit, veuillez ne le faire que si vous savez ce que vous faites.


1
Ce qui fonctionne fondamentalement aussi, mais ce n'est pas la bonne façon . Il écrit simplement des messages dans les fichiers journaux, etc. Utilisez-le sudo nvram boot-args="vm_compressor=2"et tout va bien.
bwoebi

J'aurais dû dire "Voici ce que j'ai fait dans le passé" Entre SSD et une tonne de RAM, je ne choisis plus de désactiver le swap. C'est plus de problèmes que cela ne vaut.
Patrick McMahon

Selon wiki.summercode.com/… vous devriez d'abord faire quelque chose launchctl?
rogerdpack

1
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

Testé sur Yosemite fraîchement installé sur l'App Store.


2
Obtenir /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist: Could not find specified service . De plus, cela n'a aucun effet sur le fait que le système permute ou non. (oui, j'ai redémarré)
bwoebi

1
sur sierra, vous oblige à "désactiver d'abord la protection de l'intégrité du système" FWIW
rogerdpack

-2

J'ai utilisé un programme appelé Onyx pour désactiver mon fichier d'échange. Et j'ai 16 Go de RAM.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.