在优胜美地禁用交换


12

在OS X Mavericks及以下版本中,我们只能launchctl unload使用dynamic_pager plist,但是自OS X Yosemite以来,尝试卸载此plist不会产生任何效果。

现在使用OS X Yosemite禁用交换文件的新方法是什么?


评论不作进一步讨论;此对话已转移至聊天
bmike

Answers:


11

你尝试过这样的事情吗?

# 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

这不是我写的东西,而是我找到的信息。


5
sudo nvram boot-args="vm_compressor=2"在查看apple.stackexchange.com/q/118839/97060时,我只是尝试使用,这肯定是正确的解决方案。我应用了该命令并重新启动。将接受是否在几个小时内仍然没有交换,只是为了验证;-)(顺便说一句,除了单个命令是无用的命令之外,本文中的所有其他内容……)
bwoebi 2014年

1
对于追随者,vm_compressor 2是VM_PAGER_COMPRESSOR_NO_SWAP,而4是VM_PAGER_COMPRESSOR_WITH_SWAP(请参阅:www.apple.stackexchange.com/q/118839/25085)。在sierra上,nvram: Error setting variable - 'boot-args': (iokit/common) general error除非先禁用系统完整性保护,否则它将起作用
rogerdpack

3

这是我的工作:

sudo pmset -a hibernatemode 0
(禁用休眠模式)

sudo rm -rf / private / var / vm /
*(删除现有的交换文件)

sudo chflags uchg / private / var / vm /
(锁定交换文件目录,防止任何内容写入该文件夹)

但是,正如其他人所说,请仅在知道自己在做什么的情况下执行此操作。


1
基本上也可以,但是不是干净的方法。它只是将消息写入日志文件等。只需使用sudo nvram boot-args="vm_compressor=2"就可以了。
bwoebi 2015年

我应该说“这是我过去所做的事情”,在SSD和大量RAM之间,我不再选择禁用交换。麻烦多于其价值。
Patrick McMahon

根据wiki.summercode.com/…,您应该先做一些launchctl吗?
rogerdpack '16

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

已在App Store全新安装的Yosemite上进行了测试。


2
得到/System/Library/LaunchDaemons/com.apple.dynamic_pager.plist: Could not find specified service 。同样,它对系统是否在交换也没有任何影响。(是的,我没有重启)
bwoebi 2014年

1
在sierra上,要求您“首先禁用系统完整性保护” FWIW
rogerdpack

-2

我使用了一个名为Onyx的程序来禁用我的交换文件。&我有16GB的RAM。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.