
低プロセス優先度スロットリングを削除してTime Machineを高速化
Macユーザーは皆、Time Machineを設定してコンピュータのバックアップを自動化すべきであることは周知の事実です。多くのMacユーザーはOS XにTime Machineへのバックアップを任せており、そのペースは氷河期の瀬戸際まで来ることもあります。しかし、バックアッププロセスを少しでも高速化したいユーザーもいるかもしれません。コマンドラインを使えば、まさにそれが可能になり、Time Machineのバックアッププロセスを大幅に高速化できます。ただし、このトリックにはいくつか重要な注意点があります。Time Machine以外の用途にも適用されるため、上級Macユーザーのみが限定的に使用する必要があります。
まず、Time Machineはバックグラウンドで自動的に実行されるように設計されており、煩わしくないよう、システムリソースをすべて消費して処理を行わないよう、優先度を下げて実行されていることを理解してください。これにより、Time Machineのバックアップ中もMacは使用できますが、Time Machineの起動時間が理論上よりも長くなるという欠点があります。このトリックは、優先度を下げた状態を解除することで機能しますが、この方法の注意点は、Time Machineだけでなく、カーネルレベルのあらゆるものから低優先度スロットルが解除されることです。そのため、この方法は上級ユーザーや限られた用途にのみ推奨されます。結果として、あらゆる種類のタスクがCPUを過度に消費する状況に陥る可能性が高くなるためです。そのため、この方法は実際には推奨されません。また、Time Machineのバックアップが本来よりも遅い場合(通常は最小限のトラブルシューティングで解決できます)の解決策として意図されているものでもありません。
プロセッサの優先順位を調整する際の注意点や潜在的な問題を気にしないのであれば、/Applications/Utilities/ にあるターミナルアプリを起動し、次のコマンドを実行してください。
sudo sysctl debug.lowpri_throttle_enabled=0
sudo を使用するには、通常通り管理者パスワードが必要です。入力するとすぐに反映されます。バックアップを自動的に開始することも、手動で開始することもできます。
このコマンドを実行してバックアップの残り時間を確認すると、残り時間が大幅に短縮されることがわかりますが、バックアップ デーモンの CPU 使用率が大幅に増加し、Mac のパフォーマンスが低下します。
変更は、再起動するか、ターミナルで次のコマンド構文を発行することで元に戻すことができます。
sudo sysctl debug.lowpri_throttle_enabled=1
この基本的な考え方に納得でき、Time Machineでバックアップを完了するためにCPUに負担をかけることを気にしないのであれば、Time Machineとbackupdを直接ターゲットにするのがより良いアプローチです。reniceのようなアプリを使ってアプリのCPU優先度を具体的に調整するか、コマンドラインに慣れているならniceコマンドとreniceコマンド自体を使って直接調整できます。reniceコマンドについては別の記事で別途説明しますが、予備テストでは確かに同じ目的を達成できますが、Time Machineプロセスに限定されています。
覚えておいてください、これは、トラブルシューティング方法で解決できる、Time Machine バックアップの速度低下全般に対する解決策ではありません。
この興味深いトリックを発見してくれたMacKungFuに感謝します。もしこのアイデアが本当に気に入って、再起動後に自動的に有効にしたい場合は、このplistファイルを/Library/LaunchDaemonsにドロップし、launchctlで読み込むこともできますが、これはお勧めしません。