Friday, April 04, 2008

Desktop heap issues and troubleshooting them

I had weird behaviour on my desktop for the last couple of days. Windows would not open, windows which would open will miss items on them or tabs.
I immediately suspected desktop heap issues which I run into before (becouse I have 3 monitors). I checked registry key (HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows), SharedSection=1024,3072,512. Last number in that value is recommended value Microsoft suggests if there are any issues with desktop heap performance.
Apparently I had already value set and was still experiencing issues.
Next stop is to actually verify this issue is in fact relevant to heap exhaustion.
You need to download and install tool called dheapmon from location below
Dheapmon (Desktop Heap Monitor)
http://www.microsoft.com/downloads/details.aspx?familyid=5CFC9B74-97AA-4510-B4B9-B2DC98C8ED8B&displaylang=en
Results of running that tool on my desktop are below


C:\kktools\dheapmon8.1\x86>dheapmon -s
Desktop Heap Information Monitor Tool (Version 8.1.2925.0)
Copyright (c) Microsoft Corporation. All rights reserved.
-------------------------------------------------------------
Session ID: 0 Total Desktop: ( 5824 KB - 8 desktops)

WinStation\Desktop Heap Size(KB) Used Rate(%)
-------------------------------------------------------------
WinSta0\Default 3072 93.3
WinSta0\Disconnect 64 4.5
WinSta0\Winlogon 128 9.4
Service-0x0-3e7$\Default 512 24.8
Service-0x0-3e4$\Default 512 7.4
Service-0x0-3e5$\Default 512 2.4
SAWinSta\SADesktop 512 0.5
msswindowstation\mssrestricteddesk 512 0.5
-------------------------------------------------------------


It's clear that WinSta0\Default is causing all the pr0blems. This desktop is actual desktop I'm using so one of processes running under my account caused heap exhaustion. I did not found a way to find what is on that heap, so had to go through easiest way. Open task manager, and sort processes owned by my user account and start killing them one by one while refreshing dheapmon output while doing so.

After 3 proccesses which were killed which did not yeld any results, I killed "Microsoft Office Communicator 2005" which dropped heap use from 90% to 40%.


C:\kktools\dheapmon8.1\x86>dheapmon -v -w WinSta0 -d Default
Desktop Heap Information Monitor Tool (Version 8.1.2925.0)
Copyright (c) Microsoft Corporation. All rights reserved.
-------------------------------------------------------------

Windowstation: (WinSta0) SessionID: 0
Desktop: (Default) Addr: b96d0000

Desktop Heap 3145728 (0x 300000) Bytes
Committed 3141632 (0x 2ff000) Bytes
Uncommitted 4096 (0x 1000) Bytes
Allocated 1283816 (0x 1396e8) Bytes
Total Freed 1857816 (0x 1c5918) Bytes
Unused 1861912 (0x 1c6918) Bytes
Used Rate ( 40.8) %



I'm yet to reproduce this issue again to raise question with MS

Post a Comment