Nonaktifkan bertukar pada Yosemite


12

Di bawah OS X Mavericks dan di bawah ini kita bisa launchctl unloadmembuat dynamic_pager plist, tetapi mencoba membongkar plist ini tidak memiliki efek apa pun sejak OS X Yosemite.

Apa cara baru untuk menonaktifkan swap file sekarang dengan OS X Yosemite?


Komentar bukan untuk diskusi panjang; percakapan ini telah dipindahkan ke obrolan .
bmike

Jawaban:


11

Sudahkah Anda mencoba yang seperti ini?

# 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

Ini bukan sesuatu yang saya tulis, informasi yang saya temukan.


5
Saya hanya mencoba menggunakan sudo nvram boot-args="vm_compressor=2", yang mungkin bisa menjadi solusi yang tepat, ketika melihat apple.stackexchange.com/q/118839/97060 . Saya menerapkan perintah itu dan reboot. Akan menerima jika masih tidak ada swap dalam beberapa jam, hanya untuk memverifikasi ;-) (Omong-omong, semua yang ada di pos ini kecuali bahwa perintah tunggal adalah perintah yang tidak berguna ...)
bwoebi

1
Untuk pengikut, vm_compressor 2 adalah VM_PAGER_COMPRESSOR_NO_SWAP dan 4 adalah VM_PAGER_COMPRESSOR_WITH_SWAP (ref: www.apple.stackexchange.com/q/118839/25085). Pada sierra saya dapatkan nvram: Error setting variable - 'boot-args': (iokit/common) general errorkecuali menonaktifkan perlindungan integritas sistem terlebih dahulu, kemudian bekerja
rogerdpack

3

Inilah yang saya lakukan:

sudo pmset -a hibernatemode 0
(menonaktifkan mode hibernasi)

sudo rm -rf / private / var / vm / .
* (menghapus file swap yang ada)

sudo chflags uchg / private / var / vm /
(mengunci direktori swapfile, mencegah apa pun agar tidak ditulis ke folder)

Seperti yang dikatakan orang lain, tolong lakukan ini hanya jika Anda tahu apa yang Anda lakukan.


1
Yang pada dasarnya bekerja juga, tetapi bukan cara yang bersih . Itu hanya menulis pesan dalam file log dll. Cukup gunakan sudo nvram boot-args="vm_compressor=2"dan Anda baik-baik saja.
bwoebi

Saya seharusnya mengatakan "Inilah yang telah saya lakukan di masa lalu" Antara SSD dan satu ton RAM, saya tidak lagi memilih untuk menonaktifkan swap. Ini lebih banyak masalah daripada nilainya.
Patrick McMahon

Menurut wiki.summercode.com/... Anda harus melakukan sesuatu launchctl terlebih dahulu?
rogerdpack

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

Diuji pada Yosemite yang baru diinstal dari App Store.


2
Mendapatkan /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist: Could not find specified service . Juga tidak berpengaruh pada apakah sistem bertukar atau tidak. (ya, saya reboot)
bwoebi

1
di sierra, mengharuskan Anda untuk "menonaktifkan perlindungan integritas sistem terlebih dahulu" FWIW
rogerdpack

-2

Saya menggunakan program bernama Onyx untuk menonaktifkan file swap saya. & Saya memiliki 16GB RAM.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.