What WindowServer is
Apps don’t draw straight onto the display. Each draws its own windows, and WindowServer composites them, with the Dock, the menu bar and any transparency or shadows, into one image per display. It also routes events: every click, scroll and key press goes through it to the app that should get it. Type man WindowServer in Terminal for Apple’s own description: it’s launched by the system, not by you, and has no options.
It’s always running, owned by a system account, and normal to see high in the CPU list while you scroll, play video or move windows. It’s worth a look when it stays high while you aren’t doing anything, or when the cursor, scrolling or typing starts to lag.
The one-minute check
- Open Activity Monitor: press Command-Space, type Activity Monitor and press Return.
- Click CPU, then click the % CPU column header until the biggest numbers are at the top. Note WindowServer’s number and what sits next to it: an app that’s also busy is usually the one giving it work.
- Hide or minimize windows one at a time, or switch to an empty desktop, and watch WindowServer for half a minute after each. When it drops, you’ve found what was redrawing.
- Choose Window, GPU History to see how hard the graphics are working; screen work shows up there too.
% CPU counts each core as 100%, so WindowServer can show more than 100% on a Mac with several cores. Brief spikes while you move things are expected; what matters is a high number that stays.
Common causes, and what to do
An app or web page that never stops redrawing
Every change on screen is work for WindowServer: a video, an animated ad in a browser tab, a game, a progress animation, or an app with a bug that redraws its window nonstop. The app shows its own CPU in Activity Monitor, and WindowServer’s goes up with it.
What to do: close the tab or quit the app you found in the check, then watch WindowServer drop. If it’s an app you need, check for an update.
External displays and high refresh rates
Each display is another full image to compose, many times a second. A large external display, two or three of them, or a high refresh rate all add work. Apple’s Displays settings let you choose the refresh rate on external displays that support changing it, and Default resolution, which Apple says automatically uses the best resolution for the display.
What to do: unplug one display and watch WindowServer. If it drops a lot, open System Settings, Displays, select that display, set Resolution back to Default and try a lower refresh rate. Apple says to check the display’s documentation for the best rate; a rate the display doesn’t support can leave the screen black.
Transparency and motion effects
Translucent menus, sidebars and the Dock show what’s behind them, and the interface animates as windows open and close. Apple describes Reduce transparency as replacing the transparent effect on some backgrounds with a solid one, and Reduce motion as reducing the motion of the interface, like the fluid morphing effects of Liquid Glass.
What to do: turn on Reduce transparency in System Settings, Accessibility, Display, and Reduce motion in System Settings, Accessibility, Motion. Apple doesn’t publish a performance figure for either, so turn on one at a time, repeat what you were doing and compare WindowServer in Activity Monitor. Keep the one that helps.
Lots of windows open
Hundreds of windows across many apps and desktops are more for WindowServer to keep track of and compose. Quit apps you aren’t using and close windows you’re done with, rather than minimizing them.
High since an update or a new display
Restart, and install any further updates in System Settings, General, Software Update. If it began with a new dock, adapter or display, connect the display directly once to compare.
What not to do
- Don’t force quit WindowServer. Every window you see goes through it; stopping it ends your login session and anything unsaved is lost.
- Don’t buy a “CPU fix” app. WindowServer is doing work something else asked for. Activity Monitor finds that something.
Keep an eye on it from the menu bar
Activity Monitor names WindowServer once you open it. Multimeter keeps the totals in the menu bar, so you notice when the Mac stays busy:
- CPU: total use across all cores, every 3 seconds on power and about every 6 on battery. Yellow above 70%, red above 90% by default. The Sparkline face shows the last few minutes, so you can see whether it rose when you plugged in a display or opened an app.
- Thermal pressure: Nominal, Fair, Serious or Critical, the state macOS uses to decide when to hold performance back. It’s a state, not degrees.
Multimeter shows totals, not per-process lists, so it won’t name WindowServer or the app behind it; it tells you when to open Activity Monitor. Each meter can send a notification when it goes critical. Five live meters use about 3% CPU, and they pause while the displays sleep.
How you know it’s fixed
With your usual windows open and nothing playing, WindowServer drops down the CPU list in Activity Monitor and only rises briefly while you scroll or move windows, and the cursor and typing feel immediate again.
Questions
What is WindowServer on Mac?
A part of macOS. Apple’s manual page describes it as the system daemon that provides window management, content compositing and event routing: it puts every app’s windows together on your screens and passes clicks and keystrokes to the right app.
Is WindowServer a virus?
No. It is a macOS system process on every Mac, started by the system. Type man WindowServer in Terminal to read Apple’s description.
Can I quit WindowServer?
Not without ending your session. Everything on screen goes through it, so stopping it closes your apps and unsaved work is lost. Quit the app that is keeping it busy instead.
Why is WindowServer CPU high with an external monitor?
Each display is another image to compose many times a second, and big or high refresh rate displays add the most. Try Default resolution and a lower refresh rate in System Settings, Displays, and compare in Activity Monitor.
Does Reduce transparency lower WindowServer CPU?
Apple describes what it changes (solid backgrounds instead of transparent ones) but publishes no performance figure. Turn it on, repeat what you were doing, and compare WindowServer in Activity Monitor’s CPU tab.
Can Multimeter show WindowServer?
No. Multimeter shows total CPU and thermal pressure in the menu bar so you notice a busy Mac early. Activity Monitor shows which process.
Sources
- Apple: View CPU activity in Activity Monitor
- Apple: View GPU activity in Activity Monitor
- Apple: Quit a process in Activity Monitor
- Apple: Displays settings on Mac (resolution, refresh rate)
- Apple: Change Display settings for accessibility (Reduce transparency)
- Apple: Customize onscreen motion on Mac (Reduce motion)
- Apple: If your Mac runs slowly
- The Eclectic Light Company: % CPU in Activity Monitor
- Apple Developer: ProcessInfo.ThermalState