如何在 OS X 中停止交换过程?

如何在 OS X 中停止交换过程?

我该如何防止 OS X看着用于交换文件?

我删除了 MBP 上的交换文件。这非常简单:只需更改默认交换文件位置,这样系统就找不到它了(转到 /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist,更改<string>ProgramArguments部分中的最后一个。)

这实现了我想要的效果。我的交换文件始终为 0mb,因此我可以让 Mac 连续运行数周,而不会出现我讨厌的交换引起的严重速度减慢。

问题是,我怎样才能阻止系统寻找交换文件? 交换永远不会创建,因为 .plist 文件中指定的路径不存在。但系统仍会查找它,这意味着每 10 秒就会有一个后台进程,如下所示:

dynamic_pager: cannot open swap directory /your/fake/directory/here
(com.apple.dynamic_pager[123]) Exited with exit code: 1
(com.apple.dynamic_pager) Throttling respawn: Will restart in 10 seconds

我想阻止这种情况发生,这样我的机器就不会不断地寻找不存在的东西,并安抚我天生的强迫症(据我所知,这并没有使用任何真实的足迹)。

有人知道怎么做吗?!

答案1

如果.plist文件除了调用该程序外不执行其他任何操作,则可以使用以下命令删除它和/或卸载它

launchctl unload -w com.apple.dynamic_pager

*将其移到其他地方。以防万一。

答案2

根据http://www.willreese.com/?p=29

禁用:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
sudo rm /private/var/vm/swapfile*

重新启用:

sudo launchctl load -wF /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist

但是,需要明确的是,OS X 中没有“交换进程”。这些命令将禁用和启用分页进程,这将增加可用交换的大小。通过禁用此进程并重新启动,您可以确保交换文件大小始终为 0,从而有效地禁用系统上的交换,因为系统将没有任何可用的交换空间...

答案3

如果你有兴趣调整系统处理交换文件的方式,你可以查看黑客攻击 dynamicpager。这基本上会使 dynamic_pager 进程保持运行,但它可以被破解为不使用任何交换,或仅使用极少量的交换。

相关内容