Exploring Video-Graphics Performance – Event IDs 500 and 501
Posted by William Diaz on December 8, 2011
If you had a chance to review the Diagnostics-Performance logs, you may have encountered warning events coming from event ID 500 “The Desktop Window Manager is experiencing heavy resource contention. Video memory resources are over-utilized and there is thrashing happening as a result…” or 501 “…Graphics subsystem resources are over-utilized.”
This warning has existed since Vista but there is still a lot of chatter about this being caused by some inherent problem with the DWM, poorly written graphics drivers (which can be true), or whatever else. I have even seen recommendations to disable or decrease the page file. The cause, though, is often as simple as message itself: this condition is being met when dedicated video memory is being exhausted by the demands being placed on the graphical sub-system by the OS (think Aero) and running applications, especially those rendering complex graphics or video. Whether its actual physical video memory or system memory set aside for so-called “on-board” video chipsets doesn’t matter*; when it begins to become exhausted, you are going to encounter this warning.
This doesn’t mean that the OS is going come to a halt or applications are going to stop working (well, they might but your not likely to get there). When GPU memory becomes exhausted, it falls back on system RAM. If GPU memory is has already been allocated system RAM because it is “on-board”, then it will just use more system RAM, which is also tracked in the GPU tab under GPU System Memory.
Luckily, the warning message is kind enough to point toward the most direct solution, which is to start closing stuff. After closing all the unused apps, a good portion of GPU RAM reclaimed along with system RAM:
Somehow, the part where it informs you that “if your standard workload is often causing the OS to report this event then you should invest in more RAM, a dedicated or beefier video card, or turn off Aero, and, when all else fails, set or expand the page file or update your video drivers cause you may have a memory leak in cases where you have the latest and greatest” wasn’t included in the warning. But then that why you are reading this.
*I suppose this is a matter of semantics. Often, dedicated GPU memory has often meant video card RAM, whereas systems that have on-board video allocate RAM from the system for its own use, often referred to as shared. In the context of Process Explorer and this blog, dedicated GPU memory is any RAM allocated to the graphics sub-system, whether it’s on-board or from a separate video card.