Prevent the WindowServer process from dragging Yosemite down

ActivityMonitorIconXOne potential issue in OS X Yosemite that you might run into is a problem with the WindowServer, where at times this background process can use a large amount of your Mac’s CPU. This may result in not only choppy performance, but also excessive energy usage and heat generation, and therefore greatly reduce the battery life of MacBook systems.

As its name suggests, WindowServer is a process responsible for drawing and handling window elements on screen. As such, it is expected to use more CPU whenever you perform tasks such as creating, resizing, or moving windows, or even manipulating contents within them. This can include playing videos, scrolling contents, drawing items in graphics programs, or even perform continuous actions like playing movies. Any of these actions are expected to have WindowServer’s CPU usage jump; however, these jumps should die back once the actions are finished.

WindowServer using CPU in OS X Yosemite

The WindowServer process may take up an excessive amount of CPU for no apparent reason.

Unfortunately, in OS X Yosemite there appears to be a bug or two in WindowServer that will sometimes spur it into high gear, and then keep it there without any obvious reason. In these instances, your Mac will run hot and choppy, and if you have a laptop then you will see your battery life be cut significantly shorter. At times this may seem to occur from opening a program or otherwise performing some action, but it does seem to happen rather randomly.

The exact reason for this is not too clear, but one factor that seems to affect the extent of this problem is how transparencies and other advanced graphics rendering for window elements are managed in OS X, some of which have seen enhancements in Yosemite.

While you can log out and back in (or just restart) to force a re-loading of the WindowServer and thereby clear the problem, this is an inefficient workaround.

A fix for this issue will likely have to come with a software update; however, for now you can help stem it without restarting your Mac by turning off some of Yosemite’s advanced graphics settings. In most cases these will not show any significant change to the look and feel of Yosemite, but can take WindowServer from using a regular 40-80 percent CPU down to between 7 and 15 percent.

1. Reduce transparencies

Go to the Display section of the Accessibility system preferences, and check the box to “Reduce transparency.” In doing this, you will see the menu bar and Dock become more opaque; however, this might actually be more appealing to some people.

Yosemite reduce transparency

Check this option to reduce the transparency in Yosemite’s interface.

2. Turn off Automatic Graphics Switching

The issue at hand may be how a specific graphics processor is handling the transparencies. If you are using a MacBook Pro or other system that has two graphics processors, then go to the Energy Saver system preferences and turn this feature off. Doing so will force it to use the higher-power graphics processor, which in this case seems to more efficiently manage the WindowServer’s demands. However, be sure you check your Mac’s performance both with and without this option enabled, and then go with whichever works best for you.

Automatic graphics switching option in OS X

Uncheck this option to turn off automatic graphics switching and force the use of the more powerful graphics processor.

3. Hide the Dock

One additional detail that might help reduce the CPU usage of WindowServer is to push the Dock off the side of the screen so it is not visible. This will prevent WindowServer from having to draw it, and seems to kick the CPU usage of this process down a few percentage points. To do this, you can right-click the separator bar between the apps and the documents section of the Dock, and choose the option to turn hiding on. This can also be done in the Dock system preferences.

Hiding the Dock in OS X

Check this option to hide the Dock in OS X.

4. Miscellaneous options

These three options so far should beat back WindowServer and allow you to use your Mac more fluidly; however, there are some additional tips you can try to further drop the demand of WindowServer. For one, being a window-management process, closing any unnecessary windows and programs will reduce the probability of it using CPU (though this does not seem to have much effect on the problem at hand). In addition, tidying up your desktop and reducing the number of icons on it may also help reduce the demand of WindowServer (after all, your Desktop is a window of sorts that needs to be drawn).

Finally, be sure you have updated and continue to update all of your third-party software. Check for updates regularly over the next few weeks, as developers will be identifying problems such as this that their software might be spurring, and will issue updates that correct the problems. This is especially true for system monitoring software, any that reside in your menu bar, or others that continually run in the background.

78 thoughts on “Prevent the WindowServer process from dragging Yosemite down

  1. Vic

    Topher,

    Sadly, your suggested fixes had almost no effect on the windowserver CPU hogging I’m seeing on my 2010 13-inch MacBook Pro running Mavericks. The windowserver process is still using 40-70% CPU.

    From what I’ve read elsewhere, this problem has been around since early betas and is related to using an external monitor. My MBPro is connected to a 22-inch HP monitor (using mini-display port to DVI adapter). Others have the same problem with HDMI connections and various other adapter brands.

    So, once again, Apple rushed a piece of software out the door. It’s the way they do things these days.

    Reply
    1. Topher Kessler Post author

      I believe the issue has to do with the use of the integrated GPU, which is the only GPU in the 13-inch MacBook Pro. I have seen this issue be primarily a problem on a 15-inch 2013 MacBook Pro and a 17-inch 2011 MacBook Pro, primarily when they are using their integrated Intel graphics, as opposed to their dedicated nVidia or AMD graphics cards.

      Reply
        1. Willard Wood

          YES my mini late 2012 is affected. I opened Apple Chat today and while waiting 15+ minutes I watched memory go from 5+g to 53MB and shut down the chat. So I called and Roy had never heard of the problem! I think we’re all in trouble!!

          Reply
        2. nipponjin

          Yep I have this problem once in awhile on my mini (mid 2010 2.4 GHz) WindowServer goes up to 130% in monitor Activity!

          Reply
          1. Willard Wood

            YES-Mac Mini late 2012 has this problem and worse I got scammed from someone claiming to be from Apple using LogMeIn and wanting fix all the problems. I played along until he mentioned the cost for antivirus protection would be $2 to 3 hundred dollars then I hung up! I have Memory Clean and it is showing that App Memory is now using 3.64 g and I have only 2.75 g free. I have 8g installed and I;m thinking I need to install 16g Apparently the Mini requires more men than I expected.

      1. Dan Horne

        This is a problem on my early 2011 MBP with dual graphics. When using an external monitor it always uses the discrete graphics, not the integrated. I verify this by using gfxCardStatus.

        I followed some of these instructions (I didn’t disable auto-switching, it won’t help since I am almost always connected to an external monitor, so I’m always on discrete graphics anyway.

        Reduce transparency did seem to help slightly, but not a whole lot. My dock was already hidden.

        The biggest thing that seemed to help me was switching from Chrome to Firefox or Safari. When Chrome is open, my system slows to a crawl with multiple chrome helpers not responding and windowserver taking up 75% CPU.

        When I close Chrome, windowserver goes down to minimal (under 10%) usage. Opening Firefox or Safari doesn’t cause it to go back up, but reopening Chrome does. Safari seems to perform better than Firefox, but that’s to be expected.

        Reply
    2. L Susin

      I’m too see it on a 2009 Macbook Pro running Mavericks, Mostly see it when Safari is running no external display. If safari is off and I’m just running Chrome the system seems to run smoother. At time’s the system is so hung I have to do a hard shut down. Have ran disk utilities – no issue’s, reinstall the operating system removed login items. New user seems to be fine though, So if you haven’t gotten it fixed yet can you try in a new user?? This started to happen back in October as well, Very Frustrating.

      Reply
      1. Hells

        Same here : Chrome is the culprit. As soon as I quit it, softwareupdated and windowserver back to normal. In fact, Chrome has an update system which is a processor hog.

        Reply
  2. Tim Kearn

    My 2010 mini is currently running the Window Server at 32%, so not too bad. I am going to try Topher’s suggestions & see if there is any difference.

    Reply
  3. IH

    Definitely a problem on a mid 2011 mac mini, turning down transparency made a huge difference, thanks so much for this. The mini was essentially unusable. No problems on a 2013 MacBook Pro.

    Reply
  4. Leland Long

    “From what I’ve read elsewhere, this problem has been around since early betas and is related to using an external monitor. ”

    Thanx for the clue that helped me out considerably! Mine had slowly climbed up to 90% CPU and was very maddening. Unplugged my external monitor and it’s back to where it’s actually usable (15-25%)

    Reply
  5. gilles françois

    I have no problem with window server on my mac mini 2012 but a thing called ” isuseractivityd ” make my cpu goes to 100%… ( sorry for my english )

    Reply
    1. Topher Kessler Post author

      I am not sure what this process is. I have not encountered it before, but will keep an eye out for it. It may be a new service in Yosemite; however, I have no trace of such a process in any of my Macs running Yosemite. My guess is it is part of a third-party software package you have installed.

      Reply
      1. gilles françois

        Hello ! i made a clean install of yosemite , the process is still there but it doesn’t use a lot of cpu , a little less than 1% now!!!! you can find “isuseractivityd” in “core services” .

        Reply
        1. Topher Kessler Post author

          Ah…that is “lsuseractivity”…beginning with a lowercase “L” and not an “i”. This is a daemon in OS X that monitors user activity for some sort of sharing services management routine. It is rather undocumented though, so I do not know much about it. I will look into it more to see what I can find. I’m glad you got it sorted out though.

          Reply
  6. nrolland

    With 2 thunderbolt displays and a mac mini mid2011, this is very choppy, with 30-40% CPU usage. disabling transparency eliminated the pb.

    On a macbook air mid 2013, absolutely no performance impact either way.
    I should try plugging it to the Thunderbolt displays

    Reply
  7. luis mercado ︻╦╤─ (@luisfmercado)

    Suffering this bug with windowserver too, but it affects not only CPU but also RAM. MBA 2013, no external displays connected. Have to kill the process three or four times a day. Apple really dropped the ball with this.

    Reply
  8. Mike

    If you are using an external monitor, you may wanna try to go to “System Preferences->Mission Control” and uncheck the “Displays have separate Spaces”, then log out and log in.

    It saves me a lot of time unplugging and plugging the display cable.

    Reply
    1. Tai

      Thanks, Mike – Have a Late 09 Mini with two displays, had up to 90% CPU load did it like you said and now I’m between 4 and 15%. But maybe it was the restart 😉

      Reply
  9. iLech

    Hi there,

    Your advice to Reduce transparency and hiding of the Dock helped a lot in my case. Yosemite on MBP 15″ mid 2010, 8 GB, 120 GB SSD, matt 1680×1050, LED Cinema Display. It is not as smooth as in Mavericks, but much better that prior to these 2 steps I made.

    Thanks a lot!

    Reply
  10. luis mercado ︻╦╤─ (@luisfmercado)

    Topher, I found a solution for this and wrote a guide at the Apple Community forums. Hope it helps.

    https://discussions.apple.com/message/26929324#26929324

    Reply
  11. Thank you

    Thanks! While WindowsServer still is reporting high CPU usages a lot, it has actually dipped into the teens when I’m not doing anything else (sometimes). And the lag between switching windows and selecting items is gone, along with the keyboard delay when writing. I am using an old 30″ Cinema Display on a mid-2010 MBP 17″ i7, 8GB RAM & SSD. Without this tip it was running like it had 2GB RAM and a 5400 HDD.

    Reply
  12. Phil M

    I encountered this problem today on Mid 2011 Mac Mini using 2 external monitors. CPU running at 70-80% until I found this article. Thanks for the advice. After making suggested changes CPU utilization for windowserver is down to 20-30%

    Reply
    1. Vic

      I downgraded to Mavericks and my WindowServer process is idling at 5-10% with spikes no higher than 30%. So I’m happy.

      I really hope Apple slows down their software release schedule. It’s clear they can’t maintain this pace and release a polished, minimally-buggy, software product.

      Reply
  13. e. grafland

    Thank you! I don’t know if it’s exactly this problem, but in Safari a lot of the pictures in Tumblr didn’t show up since I installed Yosemite. (I have a MBP from early 2012.)
    I switched on “Reduce transparency” in Accessibility, like you suggested, and Safari/Tumblr went back to completely normal after a simple refresh of the browser window. Bliss.

    Reply
    1. Topher Kessler Post author

      Often problems like this are fixed by re-launching Safari, where after a while your browser cache is refreshed and odd artifacts and other display quirks are cleared. You can often fix these problems by manually clearing your browser’s cache, cookies, and other temporary items.

      Reply
  14. JEROME

    With a MacBook Pro (Retina, 13-inch, Early 2013) and Yosemite 10.10, the windowserver process take a lot of memory : 44 Go !!!! and 10-20 % cpu usage… i need to restart computer sometimes… Need Apple update quickly !!!

    Reply
  15. Lari

    I managed to drop the WindowServer CPU usage dramatically by removing the desktop background image and setting it as solid color. Using 13″ MacBook Pro from 2013.

    Reply
  16. Remco

    Thank you so much! This indeed seems to help at first glance. I saw WindowServer going back from a constant 90% to the behaviour you described. Much better!

    Reply
  17. tokyobeing

    I encountered this problem with a nMP (late 2013) with 2xD500 GPU options; didn’t try the proposals from the article but rebooted instead.

    Reply
  18. Donovan

    This pissing me off. I pay close to 5K for a new macbook pro and it does this [expletive removed]. WTF Apple is becoming microsoft, they just release [expletive removed]-wear for all of us to work out.

    Reply
  19. Daniel Smedegaard Buus

    Thank you for this tip! It sent my 2013 Air’s idle windowserver process into the single digits instead of using 25-45% doing nothing. Still using comparatively much for doing nothing, but definitely gonna get back a few of those numerous lost battery hours I was “rewarded” for upgrading.

    So far, using Yosemite is the worst experience I’ve ever had with any OS X version since my first Mac with Lion on it. It is absolutely early beta grade, I cannot believe they shipped this as RTM. Unbelievable.

    Reply
  20. Darren Fiddler

    Google+ Auto Backup sends my WindowServer process through the roof. Killing it seems to fix the problem.
    Not sure why GAB would need the process though.

    Reply
  21. Dimitry (@sky2high0)

    Same problem on both macbook air 2014 work and home. It was an issue in mavericks and just get worse in yosemite. Is there any official statement about this? Thread on apple forums (can’t find)?

    Reply
  22. Zhora

    I was getting huge numbers of log messages from WindowServer too, lots of “Gesture” and “Connection” related messages. I’ve been hunting around and had tried deleting the com.apple.WindowServer.plist preference files (which on my system were zero length files) but it didn’t help and the zero length WindowServer preference files just came back. Having run Onyx and having it point out that the zero length file was an invalid preference file and then a comment I stumbled across elsewhere about copying the WindowServer preference files back in the the Preferences folders from their system installed locations made me decide to try finding a non-zero length WindowServer.plist file elsewhere (the only one I found was in “/System/Library/LaunchDaemons/com.apple.WindowServer.plist”) and copying it to (for lack of a good clue as to which one) both the /Library/Preferences folder and the ~/ /Library/Preferences folder. I restarted and since then I’ve had a huge decrease of error messages from WindowServer and no apparent problems yet.

    The actual WindowServer error count went from 9,537 messages in 12 minutes before the change to 44 messages in 13 minutes since the change. All os the current messages look to be informational or error messages I’ve seen over many versions of OS X. There are none of the “Gesture” no “Connection” error messages since the change.

    While this was just an informed try it seemed (having a current backup) to be a good guess and for me it (so far, fingers crossed) is working well. I’d love to hear from another person who might try this but I won’t fault anyone for not doing so since the actual reason for the problem and what particular thing help make it better are not known. For me, trying it was better than page after page of seemingly invalide errors in the log and the slow festering of OS X after each boot.

    I’ll note that it could be that the contents of the “plist” files isn’t even looked at but that just having preference files with non-zero lengths might have helped in some way. Or whatever…I don’t care to spend much more time on it and I’m feeling good about Yosemite again.

    Here is exactly what I did (in terminal); try it at your own risk but if you do let us know what happened. (I’m adding the sudo command to run as root where I think it is needed but it won’t hurt to run a command without the sudo and repeat it with the sudo if it fails.) I suggest you understand some of what is being done here or don’t mind taking risks if you decide to try it yourself. I hope that all my commands are correct; please add comments to correct them if not.

    – Deleted any existing copies of zero length WindowServer plist files in two Preferences folders (if they exist):

    sudo rm /Library/Preferences/com.apple.WindowServer.plist
    rm ~/Library/Preferences/com.apple.WindowServer.plist

    – Copy the non-zero length com.apple.WindowServer.plist from the system’s LaunchDaemons folder:

    sudo cp /System/Library/LaunchDaemons/com.apple.WindowServer.plist /Library/Preferences
    cp /System/Library/LaunchDaemons/com.apple.WindowServer.plist ~/Library/Preferences

    – Then, since I was in Onyx anyway and just to make sure I’d never be certain what fixed my problem I ran several of the Onyx Maintenance Rebuilding functions:

    – (rebuilt) LaunchServices
    – (rebuilt) dyld’s shared cache
    – (removed all .DS_Store files using) Appearance of folders’ content (doubt this mattered; but it will remove all your adjustments to how folders are displayed that you changed so run only if you’re ok with that!)
    – (rebuilt) Help Center (I doubt this mattered either.)

    – Rebooted my Mac and it’s running incredibly better. (Now have only 3 more WindowServer messages which are of the “disable/re-enable UI updates forcibly disabled by Preview” (which I’ve seen many times before Yosemite).

    I think I had something else to say but I can’t remember what at this point ;-] Hope this helps!

    Reply
    1. Zhora

      Well, I have to revise this to a clue and not a solution. It took a good while but the WindowServer “Gesture” errors came back (not as many at a time but I’m wondering if that will increase as time passes).

      Reply
  23. Hendrik

    Tried everything – but after one(!) day, the lag is back. It’s actually so painful that it took me half a minute to scroll down to this “reply” field.. Completely broken – all windows&screens. – until reboot. What has Apple done? Grmpf.

    Reply
    1. Willard Wood

      Mine did the same thing after I went to bed last night–window server 30+ g ! I keep hopeing Apple will fix this but the last time I complained they denied knowing of the problem.

      Reply
  24. Hardy Jonck

    Excellent – thanks! This solved my _choppy_ Mac Book Pro Retina’s horrible performance under Yosemite – which spoiled an otherwise awesome system….

    Reply
  25. Rick

    Thanks for the tips. Reducing transparency and going to a plain colour, non-changing desktop image has really reduced WindowServer lag on a Mac Mini late 2009 (using an external USB powered monitor). The lag was most noticeable in Word 2011, which had a noticeably slow response when typing.

    Reply
  26. Nick

    I’ve got the iMac 27-inch with Retina display, a second Cinema Display attached and mirroring the latter to Apple TV. The WindowServer process was then around 90% and everything was very choppy.

    I could barely believe it, but simply activating the “Reduce transparency” option in the accessibility settings brought that down to 15 to 20% and everything’s smooth again.

    Thanks!

    Reply
  27. SandraW

    This worked PERFECTLY for me!!! Thanks so much!!!
    I went from 74% down to 14% cpu, immediately (I didn’t change anything else)
    MacBookPro (15 inch early 2011), Yosemite 10.10.1

    Reply
  28. Vale.

    None of these helped me.
    I’m on a MacBook Pro 15″ early 2011, 16GB RAM. When connecting to the Thunderbolt display, I get slow responsive graphic and sometimes I can see the window redrawing.

    I notice the slow graphic responsiveness when using the gesture to trigger spaces.

    If I have enough desktops to have the carousel effect, when I scroll trough them I get the magnification/demagnification of the desktop I’m hovering on really sluggish. That happens the most with the desktops close to the right margin and to the icon for adding a new one.

    If I unplug the computer from the external display and get the discrete GPU to work on the bullit in display, no problems at all, as well as using the integrated GPU.

    I am also noticing that when I plug/unplug from the external display I get some weird rubbish display, as something not refreshed with the memory.

    No problems at all on Mavericks, I still have my previous install bootable, but I made the mistake of setting iCloud Drive. Therefore I am now obligated to use Yosemite and cannot get back at using Mavericks.

    I installed Yosemite as a fresh install two times. I didn’t installed Flash Player, nor Adobe AIR, not even Java. I also use Safari as browser.

    I also had my logic board replaced one year and half ago at Apple Store since the GPU got burnt (well known problem of this particular models of MacBook Pro).

    After having tried the solution provided by Lous Marcado here

    https://discussions.apple.com/message/26929324#26929324

    I got it working fine on my external display for a while. After a day or so (I think after a sleep/wake up, I am still investigating) the slowdown/sluggishness comes back.

    Reply
    1. Daniel Smedegaard Buus

      I would empty iCloud of all data and re-install Maverick with a new account. It seems the only “fix” for Yosemite, and it’s my scheduled weekend “fun” task. The list of bugs in Yosemite seems endless, and I’m not staying on any longer. Terrible, terrible OS.

      Reply
      1. Vale

        Hi Daniel, thanks for your suggestion. What is it gonna happen with all the purchases I’ve made on App Store, iTunes Store if I make a new iCloud account?
        Moreover, will I later be able to merge the old iCloud account with the new one just created ad hoc for downgrading to Mavericks and get iCloud syncing without iCloud Drive. How about the other iOS devices that now are syncing via iCloud Drive?

        Reply
        1. Daniel Smedegaard Buus

          Hmmm, that’s a good question. I hadn’t thought of that. Perhaps it’s better to call Apple and ask them if they can undo the upgrade so that you can downgrade to Mavericks…

          Apple seem very intent on forcing people to upgrade and keeping them there (iWork updates only for Yosemite that cause you to produce documents incompatible with earlier app versions spring to mind (which means users on Mavericks or earlier can’t read your documents, and ultimately for me just means completely abandoning iWork)).

          Reply
  29. Travis

    I just found this article, so I don’t know if turning down transparency will help me, but there is one huge tip that I can’t see anywhere in the article or in the comments. Force relaunching Finder seems to reset WindowServer, fixing the problem temporarily, without having to log out or reboot. (Hold down Option, right click on Finder on the Dock, select “Relaunch”.) If you wait until it’s exceedingly slow before doing this, the Finder relaunch can take significant time, with an unresponsive system during the relaunch, but I’ve never had this fail to temporarily fix the problem.

    Reply
  30. Bill

    Worked for me. Checked “Reduce transparency” in Accessibility, changed my desktop background to a solid colour (Who actually sees the desktop anyway?), and unchecked “Displays have Separate Spaces” in Mission Control. From 70-80% CPU to 3.3%.

    Switching to a Chrome window still drives it up to 60% but I can live without it.

    Thanks to all the contributors. I was about to abandon my mid-2012 11″ Air for a work supplied windows 8.1 laptop. Close call.

    Bill

    Reply
  31. Travis

    I can’t be sure since I haven’t been using it long enough yet, but it seems that 10.10.2 may actually fix the problem for me on my late-2012 13″ Retina MacBook Pro.

    Reply
  32. cwaynefox

    interestingly, reducing transparency reveals a programming error … the console log is littered with this message once you do it …
    2/4/15 8:44:50.870 PM com.apple.preference.universalaccess.remoteservice[904]: CGContextRestoreGState: invalid context 0x0. This is a serious error. This application, or a library it uses, is using an invalid context and is thereby contributing to an overall degradation of system stability and reliability. This notice is a courtesy: please fix this problem. It will become a fatal error in an upcoming update.

    until finally the OS kills it …
    2/4/15 8:44:50.879 PM com.apple.xpc.launchd[1]: (com.apple.preference.universalaccess.remoteservice[904]) Service exited due to signal: Killed: 9

    Reply
  33. David

    After almost a year of frustration about this issue it turned out to be caused by the system utility “bettersnaptool” and/or “betterTouchTool.” Quitting these solved the issue instantly for me!

    Other tip while we’re at it: I’ve been using the util Camouflage to hide my desktop icons which seems to have a positive effect on both system speed and the clean looks! Also having system screenshots placed in a folder instead of the desktop has a big benefit since only one folder has to be drawn by the OS on the desktop.

    Reply
  34. et

    Thank You, your tips helped a lot! windowserver calmed down from 50% to 8% ! and my mac is now noiseless again, also the safari speed came back to normal. Thanks!!!

    Reply
  35. Pawel K

    Try removing all icons from desktop – it seems to have helped me, along with disabling background (blank screen) and disabling transparency.

    Reply
  36. brswllc

    I have a problem that sounds like this running latest Yosemite on brand new maxed out 2015 13″ Retina Macbook Pro. Gets worse over time. Reboot fixes it. I see it as stuttering when scrolling pages and during system animations. Disabling transparency does help but not totally fix it.

    Reply
  37. daehl

    It’s only been 28 hours since I upgraded to 10.10.4, but Windowserver has been a problem that refused to go away ever since I upgraded my 2009 MacBook Pro to Yosemite. I have an External 1920×1080 display connected, and a variety of USB HD’s attached. No matter what advice I followed, the problem has not gone away permanently. I’d have to reboot this Mac at least once a day to keep the “Windowserver” process under control. Well, it’s been more than a day now, and Windowserver is still hovering around 10-15% CPU presently. Typically, after a full day of use it would be averaging around 30- 50% CPU by now under any prior version of Yosemite. So I’m hoping this annoyance is finally fixed once and for all. Only time will tell…

    Reply

Leave a Reply to Vale. Cancel reply