Deshabilitar el intercambio en Yosemite

12

Bajo OS X Mavericks y debajo, podríamos launchctl unloadutilizar el plist dinámico_pager, pero intentar descargar este plist no tiene ningún efecto desde OS X Yosemite.

¿Cuál es la nueva forma de deshabilitar los archivos de intercambio ahora con OS X Yosemite?

bwoebi
fuente
Los comentarios no son para discusión extendida; Esta conversación se ha movido al chat .
bmike

Respuestas:

11

¿Has intentado algo como ésto?

# 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

Esto no es algo que escribí, fue información que encontré.

Mutante
fuente
55
Intenté usar sudo nvram boot-args="vm_compressor=2", lo que definitivamente podría ser la solución correcta, al mirar apple.stackexchange.com/q/118839/97060 . Apliqué ese comando y reinicié. Aceptará si aún no hay intercambio en unas pocas horas, solo para verificar ;-) (Por cierto, todo lo demás en esta publicación, excepto que un solo comando son comandos inútiles ...)
bwoebi
1
Para los seguidores, vm_compressor 2 es VM_PAGER_COMPRESSOR_NO_SWAP y 4 es VM_PAGER_COMPRESSOR_WITH_SWAP (ref: www.apple.stackexchange.com/q/118839/25085). En sierra me sale a nvram: Error setting variable - 'boot-args': (iokit/common) general errormenos que desactive la protección de integridad del sistema primero, luego funciona
rogerdpack
3

Esto es lo que hago:

sudo pmset -a hibernatemode 0
(deshabilita el modo de hibernación)

sudo rm -rf / private / var / vm / .
* (elimina los archivos de intercambio existentes)

sudo chflags uchg / private / var / vm / (bloquea el directorio de archivos de intercambio
, evita que se escriba nada en la carpeta)

Sin embargo, como han dicho otros, solo haga esto si sabe lo que está haciendo.

Patrick McMahon
fuente
1
Lo que básicamente funciona también, pero no es la forma limpia . Simplemente escribe mensajes en los archivos de registro, etc. Simplemente utilícelo sudo nvram boot-args="vm_compressor=2"y estará bien.
bwoebi
Debería haber dicho "Esto es lo que he hecho en el pasado" Entre SSD y una tonelada de RAM, ya no elijo desactivar el intercambio. Es más problema de lo que vale.
Patrick McMahon
De acuerdo con wiki.summercode.com/…, ¿deberías hacer algo de launchctl primero?
rogerdpack
1
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

Probado en Yosemite recién instalado desde App Store.

UncleLaz
fuente
2
El conseguir /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist: Could not find specified service . Además, no tiene ningún efecto sobre si el sistema está intercambiando o no. (sí,
reinicié
1
en sierra, requiere que "desactive primero la protección de integridad del sistema" FWIW
rogerdpack
-2

Usé un programa llamado Onyx para deshabilitar mi archivo de intercambio. Y tengo 16 GB de RAM.

Sin intercambio
fuente