What is WindowServer on Mac?
Every window, menu, cursor and animation on your Mac goes through WindowServer. When it climbs past 30–50% CPU, something is asking it to redraw far more than it needs to.
Updated
- Process
WindowServer- Comes from
- macOS
- Safe?
- Safe and essential. Force-quitting it logs you out instantly and closes every app.
What WindowServer does
WindowServer is the macOS display server. It lives at /System/Library/PrivateFrameworks/SkyLight.framework/Resources/WindowServer and runs as the _windowserver user. Apps draw their own content, but WindowServer composites all those windows together, applies shadows, blur and transparency, moves the cursor, runs Mission Control and Spaces animations, and pushes the final frame to each display. It also tracks which app is frontmost and which is hung.
Because it does work on behalf of every app, its CPU is the sum of how much the whole desktop is changing.
Why it uses a lot of CPU
- Displays: two or three external screens, a 5K/6K panel, or a scaled “More Space” resolution. A 120 Hz ProMotion screen redraws twice as often as 60 Hz.
- Transparency and blur: the menu bar, Dock, sidebars and Control Center all blur what’s behind them, which has to be recomputed when content moves.
- Something redrawing nonstop: a web page with animations, a progress spinner, a terminal tailing logs, a menu bar app updating many times a second.
- Screen sharing and recording: Zoom, Teams, OBS and Screen Sharing capture frames through WindowServer.
- Lots of windows and Spaces: hundreds of Finder or browser windows across many desktops.
- Animated wallpapers: the Sonoma-and-later aerial wallpapers animate on the desktop and lock screen.
How to make it calm down
- Quit apps one at a time and watch WindowServer’s CPU in Activity Monitor. A big drop names the culprit, often a browser tab or an Electron app.
- Turn on System Settings › Accessibility › Display › Reduce transparency, and optionally Reduce motion.
- Use the default resolution for external displays (System Settings › Displays), not a scaled one.
- Switch to a still wallpaper.
- Close windows you don’t need, and merge extra Spaces.
- If you use Stage Manager, try it off for a while; see WindowManager.
To sample what WindowServer is busy with when it spikes:
sudo spindump WindowServer 5 -file ~/Desktop/ws.txt
When to worry
Malware has no reason to pose as WindowServer, but you can confirm it’s Apple’s:
ps -o user,pid,command -p $(pgrep -x WindowServer)
codesign -dv --verbose=2 /System/Library/PrivateFrameworks/SkyLight.framework/Resources/WindowServer
The user should be _windowserver and the authority Software Signing. Worry instead if WindowServer sits above 60% with nothing on screen moving: that usually means a broken display, cable or dock, or a GPU issue worth a restart and an update.
Seeing it in Stat Space
Because WindowServer’s load is caused by other apps, it helps to see both at once. Stat Space’s Apps tab groups every helper under its app (all of Chrome’s renderers under Chrome, for example), so the app driving WindowServer is easier to spot. It also flags apps that WindowServer marks as not responding, with a Force Quit button, so you don’t have to restart the whole session.
Questions
What happens if I quit WindowServer?
Your login session ends immediately. Every app is closed without a chance to save, and you land at the login window. It’s a last resort for a frozen screen, not a fix.
Does an external monitor make WindowServer use more CPU?
Yes. Each display adds pixels to composite every frame. Scaled resolutions (“Looks like” a size that isn’t native or exactly half) cost the most, because macOS renders larger and then downsamples.
Why is WindowServer using several GB of memory?
It holds a backing buffer for every window on every display and Space. Many open windows on a 5K or 6K screen can reach 1–3 GB. Closing windows you don’t need lowers it.
Know what your Mac is doing, without adding to it.
Free, no account. Pro is $9.99 once for the first 100 buyers.