10

The "WindowServer" process uses excessive CPU time on my 2020 M1 MacBook Pro running Big Sur 11.2.1. At idle it will sit at 15-25% CPU time. When moving the mouse cursor it jumps to 30-50% CPU time. This appears to cause some system slowdown under load and reduce battery life.

There are a few other threads and questions around the internet about high WindowServer CPU use but they're all for older MacOS versions on older Macs. I have tried some of the suggestions such as:

  • Looking for excessive logging from WindowServer and disabling those logs -- there don't appear to be excessive logs
  • Turning on reduced transparency mode -- no effect
  • Disabling apps that draw updates to the menu bar -- no effect
  • Closing all apps except top in a terminal -- no effect

So this appears to be a different issue perhaps specific to M1 Macs or to Big Sur. What might be causing this and how might it be mitigated?

2
  • I have the same issue with one MBP16 and one Air 13" 2020. It is not specific to M1 CPUs. I wonder if Firefox might be the culprit?
    – d-b
    Commented Mar 3, 2021 at 11:58
  • I doubt this has anything to do with either Big Sur or the M1 chip. I'm sitting in front of a MacBook Pro 15" from 2010 running High Sierra and also have the WindowsServer process idling at around 17 %. Will keep looking for the answer... Commented Dec 7, 2021 at 11:17

3 Answers 3

6

Just to share the same experience on an Intel Macbook Pro 2020 running latest Big Sur version (11.2.2) I have WindowServer process idling at ~15% CPU and jumps to ~50% as soon as I start using the trackpad (like continuous round gesture over the trackpad for 20/30 seconds) I've reported the issue in Apple Feedback Assistant FB8974295 on the January 18th but still no feedback from Apple so far.

On Activity Monitor the highest CPU Time process is WindowServer (and by a good margin)

1
  • Good catch! Not moving the mouse makes WindowServer stay even below 1%. Commented Dec 27, 2021 at 22:19
3

Big Sur has many known issues related to UI performance. It’s almost certain that you’re experiencing one of these bugs, and so you’re unlikely to be able to do much about it yourself. We can try to confirm or refute this hypothesis if you’d like.

Does this occur if you’re running in Safe Mode? (Shift during boot) If so, do the following in Safe Mode. Otherwise, do it when the problem occurs.

  1. Run the following command to enable kernel symbolication: sudo nvram boot-args="keepsyms=1" (this may require you to disable SIP first).
  2. Reboot your machine and don’t open any apps except for Terminal.
  3. Do the minimum required in order to reproduce the problem.
  4. In Terminal, run the following, making sure you’re only running it during the window of time that you experience the system slowdown. (In particular, do NOT have Activity Monitor running when you do this.): sudo spindump -reveal -noProcessingWhileSampling
  5. After waiting for 10 seconds to collect a sample and another minute or two to symbolicate and format, you’ll get a file in /tmp/spindump.txt that contains a stackshot of every process.
  6. Upload the file to PasteBin or some equivalent place and we can take a look to see what’s causing the CPU usage spikes.
0

Terminal comes with some settings that might amplify the effect. I would close all your terminal sessions and open one that does not have unlimited scroll back. Then in one shell only, run top -u -s 300 and walk away.

In 10 minutes you should have a good indication of what the idle CPU usage is.

The WindowServer process reacts to everything that might be drawn on screen even if it doesn’t show. Minimized apps, apps running in the dock (watch top in terminal update when docked), hidden apps, browsers running code in tabs that are not visible all need to be processed in the background.

It’s not immediately obvious when you look at a Mac to determine if a setup that pushes a lot of updates has been configured. You can further troubleshoot that booting to save mode (easier on Intel hardware) and setting all apps to not auto start and managing which run until you can determine which are causing window server to do work constantly.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .