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?

bwoebi
la source
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.

Mutant
la source
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.

Patrick McMahon
la source
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.

UncleLaz
la source
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.

Pas d'échange
la source