隠されたバックグラウンド アプリが Mac の速度を低下させている可能性があります。 Mac のパフォーマンスへの潜在的な影響を修正する方法を次に示します。
macOS を含む UNIX ベースのコンピュータ システムでは、オペレーティング システムがさまざまなバックグラウンド プロセスを実行して、特定のタスクをサイレント モードで実行します。 macOS では、これらは通常、デーモンとエージェントの 2 つのカテゴリに分類されます。
デーモンは、いくつかのタスクを実行するために継続的に実行される顔のないバックグラウンド タスクです。 macOS にはいくつかの一般的なデーモンがあります。他のプロセスを起動する launchd、(ユーザー アカウントを管理する) アカウント、Cloudd (iCloud サービスを実行する)、bluetoothd (BlueTooth サービス用) などがあります。
デーモンと同様に、フォアグラウンドと対話できるバックグラウンド アプリであるエージェントがあります。アプリケーションと、場合によっては小さなユーザー インターフェイスを表示します。 securityd はその一例です。Mac が管理者パスワードを要求するたびにこのエージェントが動作していることがわかります。
起動ディスクのユーティリティ フォルダにある macOS のアクティビティ モニタ アプリを開くと、Mac で実行されているデーモンやエージェントを含むほとんどのプロセスを表示できます。 top と入力して Return を押すと、ターミナルで実行中のプロセスの詳細を確認することもできます。
Apple のシステム デーモンとエージェントのほとんどは、長年にわたって改良されてきました。何十年にもわたる開発の後、それらはスムーズかつシームレスに実行されるため、実行していることにほとんど気付かない.
ただし、サードパーティのデーモンとエージェントも存在します。書き方が悪いと、パフォーマンスが低下したり、CPU 時間を浪費したり、過剰なディスク アクセスを引き起こしたり、Mac の速度を低下させるような動作をしたりする可能性があります。
場所
現在、macOS では、デーモンとエージェントは/Library フォルダー内の 2 つのフォルダー (LaunchAgents と LaunchDaemons) にあります。
実際には、実行されるデーモンとエージェントのバイナリはこれらのフォルダーには存在しません。代わりに、.plist またはプロパティ リスト ファイルが両方の場所に存在します。.plist ファイルは、キーと値のペアを含む XML ファイルです。各キーは、対応する値を持つ名前です。
ユーザーのライブラリ フォルダーには、2 つ目の LaunchAgents フォルダーもあります。.plist ファイルは、ほとんどのテキスト エディター、または Apple 独自の IDE である Xcode で開いて表示できます。
各.plist ファイルには、各デーモンまたはエージェントの説明と、それをいつどのように実行するかをシステムに伝える追加データが含まれています。各.plist の 1 つのフィールドは「ProgramArguments」という名前で、実行されるバイナリが実際に存在するファイル システム内のパスを含む項目の配列です。
たとえば、/Library/LaunchAgents フォルダー内の XQuartz org.xquartz.startx.plist ファイルでは、ProgramArguments 配列に 4 つのテキスト項目が含まれ、そのうちの 3 つにはファイル システムの他の部分へのパスが含まれています。/p>/opt/X11/libexec/launchd_startx/opt/X11/bin/startx/opt/X11/bin/Xquartz
これら 3 つのパスのそれぞれは、さまざまな時点でシステムによって実行されるバイナリを指しています。それらは、インストール時に XQuartz によってインストールされた非表示の/opt フォルダーにあります。一部の.plist には、起動する間隔や期間など、各デーモンまたはエージェントの起動情報を含めることもできます。
この例の.plist の追加フィールドには、UNIX ソケット パラメータ、「ServiceIPC」キー、および「EnableTransactions」キーが含まれます。
「IPC」はプロセス間通信の略です。 IPC (Apple の用語では XPC) を、Mac 上の 2 つのプロセスを接続するパイプと考えてください。
Mac が起動すると、macOS は LaunchAgent と LaunchDaemon を通過しますフォルダ、すべての.plist ファイルを読み取ります。また、何を起動する必要があるか、それらのアイテムがディスク上のどこにあるか、起動する間隔、実行できる期間についても記録します。
指定された時間になると、指定されたパスにあるバイナリが起動され、実行されます。一部のデーモンとエージェントは継続的に実行されますが、一部は定期的にのみ実行されます。
自動アップデーターは、頻繁に実行され、更新タスクが完了すると終了するデーモンの良い例です。
デーモンの記述が不十分
デーモンまたはエージェントの記述が不十分であると、効率が悪く、実行が遅くなり、システム全体のパフォーマンスが低下する可能性があります。デーモンのコードが遅すぎる、一部のタスクを完了するのに時間がかかりすぎる、または CPU 時間を消費しすぎると、システムの速度が低下する可能性があります。
このようによく書かれていないデーモンやエージェントが一度に多数実行されると、システム全体のパフォーマンスが著しく低下するように感じるでしょう。
また、Mac のライブラリ フォルダには、「PrivilegedHelperTools」という別のフォルダがあります。これらのバイナリは、LaunchAgents および LaunchDaemons に保存されている.plist ファイルからも起動されます。
特権ヘルパー ツールは、システム上で特権レベルを上げ、安全なタスクを実行してから終了する必要があるという理由だけで、短時間実行されるワンショット実行可能バイナリです。
macOS の一部のタスクはスーパーユーザー アクセスを必要とするため、継続的に実行したままにしておくとセキュリティ リスクになります。したがって、ヘルパー ツールは、短時間実行するだけで攻撃対象領域を減らします。
これは、タスクがスーパーユーザーとして実行されていない場合、悪意のあるソフトウェアからの攻撃ベクトルとして悪用するのがより困難になるという論理です。
遅いデーモンとエージェントの削除
前述のように、Mac で一度に実行されるデーモンとエージェントが多すぎる場合、またはそれらの 1 つ以上が書き方が悪いと、Mac の速度が遅くなる可能性があります。このような場合に通常のパフォーマンスを回復するには、パフォーマンスの問題を引き起こしているデーモンまたはエージェントを特定し、それらの.plist ファイルを無効にして Mac を再起動する必要があります。
たとえば、一部のサードパーティ製ゲーム エンジンの一部としてインストールされる一部のエージェントは、実行が遅くなったり、システムを引きずったりすることが知られています。このような場合、.plist ファイルを脇に移動してから再起動すると、起動できなくなります。
問題のあるソフトウェアを完全にアンインストールする必要はありません。必要なのは、対応するソフトウェアを移動することだけです。インストールされているすべての場所にある LaunchAgents フォルダーと LaunchDaemons フォルダーから plist ファイルを取り出し、再起動します。後でソフトウェアを再度使用する場合は、.plist ファイルを元の場所に戻すか、ソフトウェアを再インストールして再起動し、機能を復元することができます。
システム リソースを最も多く使用しているデーモンとエージェントを確認するには、Apple のアクティビティ モニターを実行し、[% CPU] 列と [スレッド] 列の両方を確認します。これらは、どのプロセスが Mac の CPU に最も大きな負荷をかけているかについての手がかりを提供します。
Activity Monitor を使用して、メモリ、エネルギー、ディスク、およびネットワークの使用状況を確認することもできます。
システムのリソースを占有しているバックグラウンド プロセスを特定したら、 、LaunchAgents および LaunchDaemons フォルダーに戻り、対応する.plist ファイルをそれらのフォルダーからドラッグできます。.plist ファイルを整理して追跡し、機能を復元する必要がある場合にファイルを元に戻す場所がわかるようにする必要があります。
インストールされたフォルダから.plist ファイルを移動するには、Finder でプロンプトが表示されたときに管理者パスワードを入力する必要があります。 Mac を再起動することを忘れないでください。
もう 1 つの可能なオプションは、起動間隔と時間が含まれている場合、各.plist ファイルの内容を変更することです。たとえば、各.plist ファイルの起動間隔を増やして、各デーモンをより少ない頻度で実行します。
ただし、これらの変更を行うと、インストールされているソフトウェアの機能が変更される可能性があるため、細心の注意を払ってください。
継続的に実行するように設計されたデーモンとエージェントには理由があります。通常は、バックグラウンド サービスまたはフォアグラウンド アプリにサービスを提供するためです。それらを無効にすると、アプリケーションが期待するときにそれらが実行されていない場合、機能が失われます。
少ないほど良い
一般に、システムで実行するデーモンとエージェントはできるだけ少なくします。それらすべてが適切に記述されていても、追加されるたびに、たとえそれがわずかであっても、システムと CPU に負荷がかかります。
一度に数十のデーモンとエージェントを実行している場合、すべてが加算され、Mac の速度が低下し始めます。
新しいソフトウェア パッケージをインストールした後、LaunchAgents および LaunchDaemons フォルダをチェックして、インストールされたものと、それらが必要かどうかを確認することができます。
macOS でデーモンとエージェントがどのように機能するかについての開発者レベルの詳細なビューに興味がある場合は、APRESS の本から入手できる Volodymyr Vashurkin による Mac Daemonology をチェックしてください。
また、Apple の XPC サービス がどのように機能するかについての詳細な技術的議論は、開発者の Web ページで入手できます。