Tame High WindowServer CPU Use on a Mac
The Mac received a great many changes with OS X Yosemite along with a notable visual redesign, but some of those changes and various transparent effects may be taking a toll on some users Mac performance with errant WindowServer behavior. This is typically demonstrated with the WindowServer process spiking into heavy CPU use for seemingly no reason, often with an accompanying inordinate usage of memory, leading to very sluggish and choppy behavior during general usage of Mac OS X and MacOS on some computers.
At the worst, something like opening Quick Look, opening a few new Finder windows, or scrolling through a busy Finder folders contents leads to a surge in WindowServer processor usage that is high enough to cause a computer to freeze up or even the appearance of the much maligned beachball cursor.
If WindowServer is frequently staying at spiking high CPU usage for seemingly no meaningful reason in some situations with macOS and Mac OS X this article is aimed at you. We’re going to attempt to tame the WindowServer process by reducing elements and features that may be spurring WindowServer behavior (or misbehavior), a challenging task given that WindowServer is necessary to draw almost everything seen in Mac OS X. Hopefully the WindowServer CPU usage issue is simply a bug or optimization issue that will be addressed, but for the time being this behavior continues well into the latest versions of Mac OS (Mac OS X 10.10.3 onward) even on the newest of Mac hardware. Fortunately, there are some solutions which help, so let’s get to it.
Turn Off Transparent Effects in Mac OS X
Simply turning off transparency effects singlehandedly speeds up every single Mac I’ve encountered running Mac OS X Yosemite or later, whether the hardware is new or old. Even if the computer doesn’t feel particularly slow, it will almost certainly feel faster turning off the transparency effects.
- Go to the Apple menu and choose “System Preferences”, then go to “Accessibility”
- Choose “Display” from the left menu
- Toggle the switch next to “Reduce transparency” to be ON (alternatively, you can enable Increase Contrast if you want the UI to be a bit easier to differentiate, that will also turn off the translucent elements throughout OS X)
The speed increase is immediately notable in most actions, and you can even measure the before and after results with the FPS frame rate monitor in Quartz Debug, which depending on the hardware can be a 10 FPS or greater boost in the refresh rate of screen animations.
This is still the case with Mac OS X 10.10.3 (granted it’s beta), so perhaps there is a stubborn bug or maybe a bit of performance optimization is still in order for OS X Yosemite.
Me personally, I like the transparent effects so I tend to keep this on with the newest Mac hardware, but even my 2015 model Retina MacBook Pro with 16GB of RAM gets a boost from turning off transparency. Meanwhile, barely older hardware like a MacBook Air from 2012 is frustratingly sluggish with transparent effects on, and I’ve heard similar complaints from users of the Retina iMac 27″, which is obviously quite new and powerful hardware. That new hardware with ample resources can still struggle displaying transparent effects in OS X suggests an eventual software solution is likely.
Close Unused App & Finder Windows
When OS X Yosemite has many windows of apps or Finder open, WindowServer starts to consume an inordinate amount of resources. While this can happen in all versions of OS X (or any OS for that matter), there is something unique about Yosemite which causes this to be a particularly draining event.
The solution is more user behavior oriented than anything else; get in the habit of closing unused windows or apps so they are no longer requiring resources.
Remembering the Close All Windows keystroke can be useful for managing this.
Stop Mission Control Spaces Rearranging Itself
If you use Spaces, which is basically the virtual desktop environment on the Mac, stopping the spaces from rearranging themselves based on usage seems to make a small difference in WindowServer behavior.
- Open System Preferences from the Apple menu and go to “Mission Control”
- Disable the setting for “Automatically rearrange Spaces based on most recent use”
Many users don’t notice this feature anyway, so even if the improvement is nearly nil it’s usually not missed.
Multiple Displays? Turn Off Spaces for Each
If you have a multi-display setup, another setting to disable is Spaces for each individual display.
- Open System Preferences and go to “Mission Control”
- Toggle the setting for “Displays have separate spaces” to be OFF
- Log out, or better yet, reboot the Mac
Of course, if you’re not one to use multiple screens with your Mac, that change will have no effect so your focus should be elsewhere.
If you’re one of those Mac users who never shuts down or reboots their Mac, but you’re experiencing WindowServer high CPU issues, you may want to adjust and restart the Mac a bit more often. Simply restarting the Mac offers a temporary solution to the WindowServer process misbehavior. I know this sounds like the lamest of advice, but multiple commenters have reported temporary success with this, and I’ve observed an improvement myself. Certainly less than ideal, but until the root cause is addressed, this can help.
If you’ve done all of the above and you continue to find WindowServer misbehaving or the Mac running inordinately slow, it’s worth reviewing these tips to speed up OS X Yosemite, or even general tips for understanding why a Mac can run slow, which can help further.
Have you experienced WindowServer issues? Do you have any tips to reduce WindowServer resource usage in OS X Yosemite? Be sure to share your experience and tricks in our comments.
When making recommendations like the above, there maybe should be a bit more disclosure of the upshot of each activity. On mine, I was trying to solve an “all of a sudden” kind of thing, that was not a problem before today, yet became a problem today. So I took with a grain of salt what I was being asked to do. I turned off transparency, and I turned off “Displays have separate spaces.” But I didn’t realize that the latter meant that the second monitor would have no menu bar at the top, and apparently no possibility of the dock appearing at the bottom. Now I have to re-enable that feature, and reboot, again. This is disruptive. Should have said that this would happen from the get-go, and I would not have chosen that option. I’m not even sure that any of these are addressing the problem that’s actually occurring, but I’ll take that under advisement. Thanks for the tips, in general, just please be more specific (and/or complete).
UPDATE: just after disabling Invert Colors (so the displays are back to regular colors again) … CPU usage is once again normal. I had Invert Colors on for about 10 minutes… not how it’s possible that did something beneficial, but perhaps that’s a workaround. Turn on the inversion, go grab some coffee, take a walk, come back and say goodbye to the slowness. Fingers crossed the fix lasts longer than 10 minutes.
For me, Reduce Transparency did nothing but enabling Invert Colors sure did. Unfortunately, I can’t operate that way… but interesting nonetheless as we sleuth for workarounds that don’t involve rebooting the whole g***amn computer when you’ve got a hundred tabs open and are in the middle of getting things done.
I love it. Spend close to 4K on a Mac to get the upgraded CPU, RAM and disk space. Have to restart every day just to browse the web without a delay when focusing new windows. I have had it with Apple and will be switching over to Linux on my next laptop. Not only will I save a small fortune but I will get better performance as well. Good riddance.
Excellent! The tips worked. Reducing transparency as shown in the article had immediately improved the performance of my MAC. Thank you very much.
Constant “WindowServer: VFBGetDeviceTransfer” errors filling up console.log, I mean like 10 to 20 of these errors per second, the console log is growing enormous because of Apple WindowServer bugs.
Great work with OS X, what a platform.
I’ve said it before and I’ll say it again here… I did NOT pay 1\3 again as much for a Mac PC only to learn AT MY PERIL that I had to become a Mac Repair Tech!
After working out Yosemite’s bugs I REFUSE to upgrade to El Crap-i-tan. Mac’s nosedive began w\the upgrade to Mountain Lion, continued through Mavericks, and crashed w\Yosemite. Instead of cutesy little names for browsers, why not go with the beam and name subsequent browsers after cities where atrocities and assassinations have taken place?
Perhaps the next POS browser should be called “Jonestown”!
I’ll celebrate the day Mac files Chapter 11 for all the agony and lost sanity it’s caused me.
Is there any indication that these problems are resolved in El Capitan? I’m seriously considering downgrading to Mavericks. But we’re days away from the release of 10.11. So, go one step forward, or two steps back?
Amazing Bro! I ask my self what is windows_server User?
this was in my CPU.
Thank’s for this Post!
I spent 6 months wasting countless hours trying to debug this f’ing issue on Yosemite. Something is fundamentally flawed between OS & hardware. Roll back to Mavericks and save the hours of your life beating your head against Apple’s massive issue they won’t come clean on imo.
The only thing that reliably works for me is to turn off separate spaces for my displays. In addition to that I disabled or changed the settings of menu bar apps that update too frequently. Yosemite performs similar to Mavericks again.
I have this setup since a couple of months and I’m back to old uptimes of a couple of days / weeks without any performance issues. Yesterday I tried to turn separate spaces on again, but immediately felt the sluggish UI and had to went back to the old settings. It’s a shame because I like (and actively used) this functionality.
Why does Finder and WindowServer each take up 40-80% CPU just for using Transparent effects? That is absurd, I am using a $1800 2015 13″ MacBook Pro Retina here and it’s slower than a dog because of this. Animations are choppy. Mission Control looks like it renders at 3 FPS. Minimizing a window is about the same, as is maximizing (BTW does anyone on Earth want to use Full Screen? Didn’t think so).
Any Mac with OS X Yosemite is a real piece of work, I am amazed this piece of early beta if not alpha software shipped to customers. This thing is installed on computers in the wild, good grief what would you do if you were not tech savvy to troubleshoot this stuff? Amazing.
Meanwhile, my dramatically underpowered clunker of a $450 Dell Windows 7 laptop, which doesn’t even have an SSD and the video card is about as weak as you can get on a 4 year old laptop, has transparent effects enabled and it’s smoother than butter at any resolution. I can connect it to an external 27″ HD display and all animations and transparent effects are still smooth, at a higher resolution than the native display of the MacBook Pro! So don’t tell me it’s transparency that is the problem, the problem is that Apple is running OS X as an amateur hour side project with what must no quality control whatsoever.
Apple, what have you done to OS X? I am dismayed that I paid so much for a brand new Mac that runs worse than any new computer I’ve owned perhaps ever. Sure hope OS X 10.11 is nothing but performance updates…
My WindowServer runs fine with up to 20-30% of CPU. My Mac is a Mac mini mid 2011 model with 16GB of memory. It runs just fine until I’ve had it on for too long.
WindowServer should almost never take up 20-30% of your CPU unless you are rapidly entering in and out of Mission Control with 200 open transparent windows, so it’s not “running fine” at all, there is obviously something wrong with the process and window drawing.
I also have this issue running on a Late 2009 27″ Core i7 iMac. But it only shows itself after it’s been sleeping for a few hours. After that, it’s a nightmare trying to run or do anything on the computer. I often have to hard shutdown, which I hate doing. I have tried all the recommend solutions above, and they only temporally fix the problem until it goes to sleep again. I hope Apple fixes this!
I’ve found rebooting once a day to be fairly effective, a nuisance, but indeed makes a notable difference.
When things are going wrong it looks like WindowServer develops a memory leak too.
Does nobody on the OS X development team experience any of these issues? It’s really only the customers? Somehow I doubt that.
They deny it in the Apple Store too. Just liers.
The best solution to ALL of Yosemite “Sam” is to backdown your machine to Mavericks!!!
At least that’s what I am spending a lot of time doing for my clients to fix all the complaints.
Indeed going back to Mavericks is the only real solution to all of Yosemite troubles, but late 2014 and now 2015 model year Macs can only run Yosemite, so they are stuck with buggy slow OS X on $2500 Macs.
All those symptoms don’t just show up in Yosemite or even recent versions of OS X: I’ve noted them in Snow Leopard as well, and the only countermeasure I could think of was to renice the process, either on the spot, or permanently with the use of a nifty little freeware called ATmonitor (only caveat: it has to be running for the settings to stay in effect).
Transparency uses increased Nvidia hardware acceleration where it is available. Where Nvidia hardware acceleration it isn’t available and the Intel chipset is used, the performance impact will be significant.
I’m running Yosemite on a 2011 27″ i7 iMac driving a 24″ external display, transparency effects on and 12 separate desktops for each display. My computer is more stable and better performing than with Lion, Mountain Lion and Mavericks combined. I’ve been using Mac OS since version 7, what we have access to now blows all it’s predecessors out of the water in my opinion.
The only thing that works to help WindowServer is rebooting the Mac, and it’s temporary. Logging out and back in is not sufficient. Resetting SMC and disk permissions is total voodoo, you’re restarting during that process so you think it did something, but it’s the restart that did. WindowServer is broken for Retina displays, period.
WindowServer clearly has some issue with IO or memory on retina Macs with OS X Yosemite, over the course of a few hours it gets so slow it becomes nearly useless. There is no amount of resources sufficient to overcome that, but a reboot offers temporary help. So sure, reset PRAM, tap your toes, the reboot is what is actually helping performance for a brief while until the process goes down the drain again.
That we have gone from OS X 10.10 betas, to OS X 10.10 ‘final’, to OS X 10.10.1, to OS X 10.10.2, to OS X 10.10.3 betas, OS X 10.10.3 final, and there is still no remedy from Apple, tells you there will be no remedy. There is no remedy, WindowServer is permanently broken on the most expensive hardware Apple makes, Retina Macs. Welcome to Macintosh.
Got that right! I’m about to use mine like a brick – right through the Apple Store window – give them a Window Serve they might take some notice of.
I’m fed up with being a beta-tester for Apple. They just plain lie and bend the truth. Steve must be rolling in his grave in absolute agony at what is happening to the beautiful Apple of his eye. It is rotten at the core.
I have spent far, far too many hours since last October on this crock of crap called Yosemite. It is a blooming great immovable rock. Bring back the stealthy cats.
Apple can’t be bothered to update OS X with a performance update because they have no idea how to fix the problems they created.
Yosemite is slow as molasses on my retina MacBook Pro!
I have a new MacBook Pro 2015 and it’s slow as molasses with UI drawing. Coincidentally, MacRumors is today reporting on the awfully slow performance in OS X Yosemite on the retina MacBook Pro models here.
one idea from comments on Apple forums:
Reset PRAM by press and hold the P and R keys while holding down the option (⌥) and command (⌘) keys before the gray boot screen appears
I am about to return this Mac, can’t believe I paid $1800 for something slower than a computer from 2006!
Tried all that, worked for a few hours. I think it’s the reboot that helps. Now WindowServer is back at 50% CPU, lag everywhere.
If your MacBook Pro has a dedicated GPU turn off automatic graphic switching in System Preferences > Energy Saver so that you use the good GPU and not the onboard clunker, it helps
Performance, overall, leaves much to be desired.
One thing to keep in mind that CPU performance hasn’t increased that much over the past few years, so it makes sense the WindowsServer issue doesn’t decrease in frequency on newer hardware, especially when it is using the CPU that heavily.
Apple screwed up big time on Yosemite for my own hardware (yes, I did clean installs). Network instability and heavy UI issues.
Windows 10 previews are so much faster and stable in my virtual machines running on top of Yosemite. :| I prefer OS X but god, Apple is pissing me off with the bloating of OS X over the past years.
Whatever you do, don’t kill the WindowServer process! It closes everything and logs you out, LOL, found that out the hard way some time ago ;)
My big tip is rebooting. I have found that rebooting OS X Yosemite helps performance a lot. Yes, a lot like Windows really. Boot up in the morning, then reboot mid day or so at your lunch break, things will run fast for a few hours at least. Shut down at the end of the day, or if you’re a sleeper, reboot in the morning.
Used a retina iMac in Apple Store and found it choppy and slow, activity monitor shows all in WindowServer. OS X needs optimizing still yet.
And here I thought you had a real solution to the issue. Some of these features are actually useful, and it’s a lot easier to just reboot every couple of days to make WindowServer’s CPU usage go back to normal.
Unless you’re the Apple OS X software team you will not have a ‘real solution to the issue’ because this is a software problem. Turn off transparency, reboot, do a dance, whatever, we’re all waiting for Apple to release a legitimate update to OS X Yosemite.
I have a real solution for you Chris, upgrade to OS X Mavericks, versioned as OS X 10.9.5. It’s very fast, my current uptime is 61 days! No WindowServer issues in OS X Mavericks, no wi-fi issues, it’s all good over here. I am very happy to have upgraded to OS X Mavericks and skipped the OS X Yosemite downgrade!
See I think the trouble is that someone at Apple pushed the buggy internals of OS X 10.1 into OS X 10.10, easy mistake to make, right? Which is why Microsoft named Windows 10 instead of Windows 9, right?
This is interesting. I am using OS X Mavericks and after the last upgrade to 10.9.5, I started to have excessive WindowServer issues. Is Apple putting something in OS X? Is Apple adding a slowdown malware to it’s OSX?
Too bad there’s a security vulnerability that Apple isn’t going to fix in pre 10.10.x
Poignant article, been thinking about WindowServer a lot lately. Whatever adjustment were made to WindowServer behavior I think is the reason why people think OS X Yosemite is slower. I think it IS why it’s slower. For me, WindowServer frequently hovers around 40-60% during routine tasks that in OS X Mavericks would linger around 4%. What on earth is the difference? Sorry, but the “eye candy” (if you would call it that) in OS X Yosemite should not be that demanding, translucent windows have been around in the, ahem, Windows world, for 10+ years, with almost no impact on system performance.
Something is wrong with OS X Yosemite. I am running OS X 10.10.3 b7, WindowServer at 25% with a Chrome window open.
Want to really have some fun with WindowServer and Finder? Do this, keep your transparency on, have Finder default to “All My Files”, and hit Command+N rapidly. 5 minutes later, you might be able to use your Mac again. Now, try the same in OS X Mavericks, your time to use is around 5 seconds with no slowdown. Hmm.