web-dev-qa-db-ja.com

OS Xでスワッププロセスを停止するにはどうすればよいですか?

OS Xがスワップファイルを探しているのを防ぐにはどうすればよいですか?

MBPのスワップファイルを強制終了しました。これは非常に簡単です。デフォルトのスワップファイルの場所を変更して、システムがそれを見つけられないようにします(/System/Library/LaunchDaemons/com.Apple.dynamic_pager.plistに移動し、ProgramArgumentsセクションの最後の<string>を変更します。 。)

これは私が達成したかったことを達成します。私のスワップファイルは常に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

私はこれが起こらないようにしたいので、私のマシンは常にそこにないものを探しているわけではなく、私の生来のOCDの性質を満足させます(私が知る限り、これは実際のフットプリントを使用していません)。

誰か知っていますか?!

1

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になり、システムで使用できるスワップスペースがなくなるため、システムのスワップが事実上無効になります...

1
Motin

システムがスワップファイルを処理する方法を微調整することに興味がある場合は、 dynamicpagerのハッキング を調べることができます。これにより、基本的にdynamic_pagerプロセスが実行され続けますが、ハッキングされてスワップを使用しないか、ごく少量のスワップのみを使用する可能性があります。

1
Motin

.plist fileは、そのプログラムを呼び出す以外に何もしません。削除*したり、を使用してアンロードしたりできます。

launchctl unload -w com.Apple.dynamic_pager

*別の場所に移動してください。念のため。

1
Daniel Beck