Desativar a troca no Yosemite

12

No OS X Mavericks e abaixo, nós apenas podíamos launchctl unloadplistar dynamic_pager, mas tentar descarregá-lo não tem nenhum efeito desde o OS X Yosemite.

Qual é a nova maneira de desativar os arquivos de troca agora com o OS X Yosemite?

bwoebi
fonte
Comentários não são para discussão prolongada; esta conversa foi movida para o bate-papo .
bmike

Respostas:

11

Você já tentou algo assim?

# 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

Isso não é algo que escrevi, foi a informação que encontrei.

Mutante
fonte
5
Eu apenas tentei usar sudo nvram boot-args="vm_compressor=2", que pode ser definitivamente a solução correta, ao olhar para apple.stackexchange.com/q/118839/97060 . Eu apliquei esse comando e reiniciei. Vai aceitar se não há ainda nenhuma troca em poucas horas, apenas para verificar ;-) (By the way, tudo neste post, exceto que único comando são comandos inúteis ...)
bwoebi
1
Para seguidores, vm_compressor 2 é VM_PAGER_COMPRESSOR_NO_SWAP e 4 é VM_PAGER_COMPRESSOR_WITH_SWAP (ref: www.apple.stackexchange.com/q/118839/25085). Na serra eu recebo nvram: Error setting variable - 'boot-args': (iokit/common) general errormenos que desactivar a protecção da integridade do sistema em primeiro lugar, em seguida, ele funciona
rogerdpack
3

Aqui está o que eu faço:

sudo pmset -a hibernatemode 0
(desativa o modo de hibernação)

sudo rm -rf / particular / var / vm / .
* (remove os arquivos de troca existentes)

sudo chflags uchg / private / var / vm /
(bloqueia o diretório swapfile, impede que qualquer coisa seja gravada na pasta)

Como outros já disseram, faça isso apenas se souber o que está fazendo.

Patrick McMahon
fonte
1
O que basicamente funciona também, mas não é o caminho limpo . Ele apenas escreve mensagens nos arquivos de log etc. Apenas use sudo nvram boot-args="vm_compressor=2"e você está bem.
bwoebi
Eu deveria ter dito "Aqui está o que eu fiz no passado" Entre SSDs e uma tonelada de RAM, não escolho mais desativar o swap. É mais problema do que vale a pena.
Patrick McMahon
De acordo com wiki.summercode.com/…, você deve fazer alguma coisa do launchctl primeiro?
Rogerdpack # 26/16
1
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

Testado em Yosemite recém-instalado na App Store.

UncleLaz
fonte
2
Obtendo /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist: Could not find specified service . Além disso, ele não tem efeito se o sistema está trocando ou não. (sim, eu fiz reboot)
bwoebi
1
na serra, requer que você "Desactivar a protecção da integridade do sistema em primeiro lugar" FWIW
rogerdpack
-2

Eu usei um programa chamado Onyx para desativar meu arquivo de troca. E eu tenho 16 GB de RAM.

Sem Troca
fonte