What Is WindowServer and Why Is It Using So Much CPU?
Open Activity Monitor on almost any Mac and WindowServer is near the top of the CPU list. Most of the time that is fine. Sometimes it climbs, the Mac starts to stutter, and it looks like WindowServer is the problem.
The short answer: WindowServer is the macOS system service that manages windows, composites what you see on screen and routes input events. Its CPU use rises with the work it is given: more displays, scaled resolutions, and many busy or animated windows. It is part of macOS, so there is nothing to remove or quit. Reduce what it has to draw, and its usage follows.
What WindowServer does
Its own manual page, which you can read with man WindowServer in Terminal, describes it as "a system daemon that provides various UI services such as window management, content compositing, and event routing". Every window, menu, shadow and animation on your screens passes through it before you see it, and so does every click and keystroke on its way to the right app.
On our test Mac, an M4 MacBook Air running macOS 27.0.1 with its built-in display and one external 1920 x 1200 monitor, WindowServer ran from /System/Library/PrivateFrameworks/SkyLight.framework/Resources/WindowServer under the system account _windowserver, started by launchd. During ordinary work it used about 40% CPU and about 570 MB in top's memory column. A steady reading like that is normal; a reading that keeps climbing while you do the same thing is what is worth looking into.
Why WindowServer uses so much CPU
- More displays and more pixels. Each extra display, and each high-resolution one, is more screen for WindowServer to composite.
- Scaled resolutions. In System Settings > Displays you can choose a resolution that makes text larger or gives more space. Apple notes that "using a scaled resolution may affect performance", and that by default your Mac "automatically uses the best resolution for the display". See Apple's guide to changing your display's resolution.
- Busy windows. Video, animations, live dashboards and pages that redraw constantly all give WindowServer new content to composite, even when their window is not the active one.
How to bring WindowServer back down
- Find what is redrawing. Sort Activity Monitor's CPU tab by % CPU and look at the apps just below WindowServer. A browser tab playing video or animation, or an app with a constantly updating window, is often the source. Close or pause it and watch whether WindowServer drops.
- Try the default resolution. If you use a scaled resolution, especially on an external display, switch back to the default in System Settings > Displays and compare.
- Try Reduce transparency. In System Settings > Accessibility > Display, Apple describes Reduce transparency as replacing "the transparent effect used on some backgrounds in macOS with a solid background". See Apple's accessibility display guide. Turn it on and compare the reading.
- Restart if it stays high for no reason. If WindowServer stays busy after you have closed the busy apps and nothing on screen is changing, restarting the Mac gives it a fresh start.
If the high CPU use is making your Mac hot, our guide to why a Mac overheats covers the next steps.
Watch the apps that feed it
WindowServer belongs to macOS, and macOS does not let MacStats read the usage of system-owned processes, so it never appears in MacStats' lists. What MacStats can show is the other half of the picture: an overall CPU reading in your menu bar, and in the Detailed dashboard a Top CPU list of the processes running under your account. When WindowServer climbs, that list is a quick way to spot the app that is redrawing.
Monitoring is free on Apple silicon Macs running macOS 13 or later. MacStats Pro adds the Process Explainer for processes in your lists. For WindowServer itself, Activity Monitor's All Processes view remains the place to look.
macOS reports normal memory pressure.
↓8.03KB Live Activity
- 1MacStats16.4%›
- 2corespotlightd7.3%›
- 3Siri AI6.5%›
- 4dataaccessd2.3%›
- 1Google Chrome486.2 MB›
- 2Chrome Helper380 MB›
- 3OrbStack Helper373.6 MB›
- 4cmux296.7 MB›
MacBook Air, Apple M4 | 16 GB RAM | macOS 27.0
Frequently asked questions
Is WindowServer a virus?
No. It is a macOS system service. On our test Mac it ran from the system SkyLight framework under the _windowserver account, started by launchd.
Should I quit WindowServer?
No. It draws your whole session and is part of macOS. Reduce what it has to draw instead: close busy windows, use the default resolution, and restart if it stays high for no reason.
Does an external monitor make WindowServer use more CPU?
It gives it more to composite, especially at high or scaled resolutions. Apple notes that a scaled resolution may affect performance.
Why does WindowServer use so much memory?
Some memory use is normal for the service that draws every window. On our test Mac with two displays it used about 570 MB during ordinary work. Check memory pressure in Activity Monitor before treating the number as a problem.