簡単な答え
MacのWindowServerは、すべてのウインドウ、メニューバー、Dockをディスプレイに描画するmacOSのプロセスです。CPU使用率が高いのは、画面上で何かが変化し続けているか、ディスプレイの数が多い、大きい、またはスケーリング解像度を使っているためです。強制終了は絶対にしないでください。ログアウトされ、すべてのアプリが閉じます。ウインドウを閉じ、アニメーションするアプリを終了し、デフォルトの解像度を使ってください。
このページの内容
WindowServerの役割
各アプリは自分のウインドウを描画してWindowServerに渡します。WindowServerはそれらをメニューバー、Dock、影、透明効果、アニメーションと合成し、各ディスプレイに表示する画面を作ります。すべてのディスプレイ、すべてのウインドウ、すべてのフレームがWindowServerを通ります。
そのため、CPU、GPU、メモリの使用量は画面上の状況に応じて変わります。作業中に数パーセントのCPUを使うのは正常で、メモリはディスプレイの数と大きさに応じて増えます。
アクティビティモニタでのWindowServer
アクティビティモニタ(「ユーティリティ」フォルダ内)を開き、検索フィールドに「WindowServer」と入力します。WindowServerの行は1つで、「ユーザ」列には_windowserverと表示されます。macOSはこのプロセスを、あなたのアカウントではなく専用のシステムユーザとして実行します。CPUタブには% CPUの値が、メモリタブにはメモリ使用量が表示されます。「ウインドウ」→「GPUの履歴」を選ぶと、描画中のグラフィックプロセッサの負荷を確認できます。
ps -axo user,pid,comm | grep WindowServer_windowserver 431 /System/Library/PrivateFrameworks/SkyLight.framework/Resources/WindowServerここに表示されるのは正常です。どのMacでもWindowServerは常に動作しています。
WindowServerを終了しても大丈夫?
いいえ、絶対に終了しないでください。WindowServerを強制終了するとすぐにログアウトされ、保存の確認なしにすべてのアプリが閉じて、ログインウインドウに戻ります。CPU使用率を下げるために終了する理由はありません。
WindowServerのCPU使用率が高くなる理由
- ディスプレイの数が多い、または大きい。 外部ディスプレイが1台増えるごとに、描画する画面がまるごと1つ増えます。高解像度のディスプレイでは、フレームごとのピクセル数も増えます。
- スケーリング解像度。 画面により多くを表示するスケーリング設定では、macOSは高い解像度で描画してから縮小します。Appleは、スケーリング解像度を使うとパフォーマンスに影響することがあると説明しています。
- 透明効果と動き。 半透明のメニュー、サイドバー、Dock、そしてアニメーションは、いずれも描画の負荷を増やします。
- ウインドウが多い。 開いているウインドウは、ほかのウインドウの後ろや別のデスクトップにあるものも含めて、すべて描画できる状態に保つ必要があります。
- 常に再描画するアプリ。 ビデオやアニメーションのあるWebページ、ゲーム、動く壁紙、更新の多いダッシュボードなどがあると、WindowServerはフレームごとに再描画します。急に負荷が上がる原因として最も多いのがこれです。Chromeの場合は、Chrome Helperのガイド(英語)でタブの見つけ方を説明しています。
WindowServerの負荷が高いのは、たいてい症状にすぎません。別のアプリが大量の描画を求めているのです。Macが熱くなっている場合は、macOSがチップを冷やすために負荷の高いアプリを抑えるので、kernel_taskの値も上がることがあります。
WindowServerのメモリ使用量が多い場合
WindowServerのメモリは、描画できる状態に保つ必要があるものの量で決まります。すべてのデスクトップにある、すべてのディスプレイ分の、開いているウインドウすべてです。ウインドウ、デスクトップ、ピクセル数が増えるほど多くなります。数百MBは普通で、大きなディスプレイや複数のディスプレイではさらに増えます。
top -l 1 -o mem -n 60 -stats pid,command,mem | grep WindowServerこのガイドを書いた14インチMacBook Pro(M1 Pro、16 GB)では、内蔵ディスプレイのみの状態で、macOS 27.0で609 MBと表示されました。アクティビティモニタでは、同じ値がメモリタブに表示されます。検索フィールドに「WindowServer」と入力してください。
数値だけでは問題があるかどうかは分かりません。「メモリ」タブの下部にある「メモリプレッシャー」のグラフを確認してください(memory pressure、英語)。緑であれば、数値がいくつであっても、WindowServerのメモリがMacを遅くしているわけではありません。黄色や赤の場合は、メモリプレッシャーの意味とアプリメモリとは何か(いずれも英語)を読んでから、次の手順を試してください。
- 使っていないウインドウを閉じます。しまってあるウインドウや別のデスクトップにあるウインドウも含みます。ブラウザのウインドウは1つずつ数えられます。
- Mission Controlで、不要なデスクトップを削除します。
- 使っていないディスプレイを取り外し、各ディスプレイでデフォルトの解像度を使います。
- 同じウインドウとディスプレイのまま数日にわたって値が増え続ける場合は、ログアウトしてからログインし直します。WindowServerはログイン時に新しく起動するので、メモリは最初の値に戻ります。ログアウトするとアプリが閉じるので、先に作業内容を保存してください。
- 最新のmacOSアップデートをインストールします。システムプロセスの修正はアップデートで提供されます。
原因の見つけ方
アクティビティモニタのCPUタブを% CPUで並べ替え、WindowServerと一緒に負荷が高くなっているアプリを探します。たいていはそれが再描画しているアプリです。「ウインドウ」→「GPUの履歴」で、GPUの負荷を確認できます。
top -l 2 -o cpu -n 10 -stats pid,command,cpu | tail -11system_profiler SPDisplaysDataType簡単な確認方法があります。疑わしいアプリを終了するか隠して、アクティビティモニタでWindowServerの% CPUを見てください。値が下がれば、それが原因です。
対処法
- 不要なウインドウやブラウザのタブを閉じます。特に、ビデオを再生しているものやアニメーションしているものです。
- 見ていない間もアニメーションし続けるアプリを終了します。
- 各ディスプレイでデフォルトの解像度を使います。「システム設定」→「ディスプレイ」では、macOSがそのディスプレイに最適として選ぶ解像度がデフォルトです。画面により多くを表示するスケーリング設定は、負荷が高くなります。
- 「システム設定」→「アクセシビリティ」→「ディスプレイ」で、透明度を下げるをオンにします。一部の背景の透明効果が、不透明な表示に置き換わります。
- 使っていない外部ディスプレイを取り外し、WindowServerの値が下がるか確認します。
もっと早い方法:iKnowMyMacの「これは何?」
iKnowMyMacは、これをアプリの中で説明します。プロセスの各行に「これは何?」があり、そのプロセスが何か、終了しても安全か、今なぜ負荷が高いのか、何をすればよいかを示します。WindowServerの場合は、現在描画しているディスプレイの台数を表示します。