Ab.の日記: ThinkPad は Desktop Heap が足りないのです
Microsoft Support Professionals Toolkit for Windows から Desktop Heap Monitor Version 8.1 を拾ってきました。
で、適当に展開してなんかそれらしい dheapinst.exe を実行したら win32k.sys のシンボルが無いよ、みたいなエラーで怒られてしまったのでさらに検索。
KB914216: Desktop Heap Monitor ツールのインストール時にエラー メッセージ "dheapinst - Win32k.sys symbol load error, correct symbol required" が表示される に載っていました。
シンボルをインストールしていなくても
dheapinst.exe -y srv*http://msdl.microsoft.com/download/symbols
とやればMicrosoft Symbol Server に直接アクセスして、正しいシンボルを入手しインストール出来るようです。
その後は
C:\dheapmon\x86>dheapmon -l
Desktop Heap Information Monitor Tool (Version 8.1.2925.0)
Copyright (c) Microsoft Corporation. All rights reserved.
Dheapmon - Driver loaded successfully
でドライバのロード、その後はサマリの表示
C:\dheapmon\x86>dheapmon
Desktop Heap Information Monitor Tool (Version 8.1.2925.0)
Copyright (c) Microsoft Corporation. All rights reserved.
-------------------------------------------------------------
Session ID: 0 Total Desktop: ( 8384 KB - 8 desktops)
WinStation\Desktop Heap Size(KB) Used Rate(%)
-------------------------------------------------------------
WinSta0\User_Desktop0 3072 6.1
WinSta0\Default 3072 93.3
WinSta0\Disconnect 64 8.7
WinSta0\Winlogon 128 22.5
Service-0x0-3e7$\Default 512 25.7
Service-0x0-3e4$\Default 512 6.2
Service-0x0-3e5$\Default 512 4.9
SAWinSta\SADesktop 512 0.5
-------------------------------------------------------------
とか、desktop や verbose 表示
C:\dheapmon\x86>dheapmon -v -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: bc6f0000
Desktop Heap 3145728 (0x 300000) Bytes
Committed 3141632 (0x 2ff000) Bytes
Uncommitted 4096 (0x 1000) Bytes
Allocated 2936568 (0x 2ccef8) Bytes
Total Freed 205064 (0x 32108) Bytes
Unused 209160 (0x 33108) Bytes
Used Rate ( 93.4) %
-------------------------------------------------------------
Windowstation: (Service-0x0-3e7$) SessionID: 0
Desktop: (Default) Addr: bc9f0000
Desktop Heap 524288 (0x 80000) Bytes
Committed 176128 (0x 2b000) Bytes
Uncommitted 348160 (0x 55000) Bytes
Allocated 134496 (0x 20d60) Bytes
Total Freed 41632 (0x a2a0) Bytes
Unused 389792 (0x 5f2a0) Bytes
Used Rate ( 25.7) %
-------------------------------------------------------------
Windowstation: (Service-0x0-3e4$) SessionID: 0
Desktop: (Default) Addr: bca70000
Desktop Heap 524288 (0x 80000) Bytes
Committed 57344 (0x e000) Bytes
Uncommitted 466944 (0x 72000) Bytes
Allocated 32512 (0x 7f00) Bytes
Total Freed 24832 (0x 6100) Bytes
Unused 491776 (0x 78100) Bytes
Used Rate ( 6.2) %
-------------------------------------------------------------
Windowstation: (Service-0x0-3e5$) SessionID: 0
Desktop: (Default) Addr: bcaf0000
Desktop Heap 524288 (0x 80000) Bytes
Committed 28672 (0x 7000) Bytes
Uncommitted 495616 (0x 79000) Bytes
Allocated 25808 (0x 64d0) Bytes
Total Freed 2864 (0x b30) Bytes
Unused 498480 (0x 79b30) Bytes
Used Rate ( 4.9) %
-------------------------------------------------------------
も出来る模様。
で、見れば分かりますが WinSta0\Default が desktop heap を 93.3% まで使ってしまっています。
まぁ logon しただけで ThinkPad の常駐モノだけで20~30くらいプロセス走って、普通に使ってるだけでプロセス数が90を超えるので、へヴィーユーザーからは「これだからメーカーもののPCはダメなんだ!」と蛇蝎のごとく忌み嫌われるのも当然のような気がします。
もちろん desktop heap の空きをチェックしたのは理由があって、ぐぐるとすぐ出てくると思いますが、レジストリをいじると desktop heap の割り当ては増やせます。
具体的には HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\SubSystems\Windows の SharedSection=1024,3072,512 の2番目のパラメータです。
とりあえずこれを 4096 に増やしてみようかな、と。
これから書き換えてリブートするけど、書き間違えて起動しなくなったら泣きます。
ThinkPad は Desktop Heap が足りないのです More ログイン