デスクトップヒープの不足によりTPシステム関連のプロセス起動に失敗する

1. 概要

WebOTXの起動に失敗し、イベントログ(システム)に

イベントID:244「デスクトップ ヒープがなくなったたためデスクトップを作成できませんでした」
(Windows Server 2003)

というメッセージが出力された場合、デスクトップヒープが不足している可能性があります。イベントIDのみ出力され、メッセージは出力されない場合があります。デスクトップヒープの不足が疑われる場合は、デスクトップヒープのサイズを増やしてください。

2. 障害内容

Windows Server 2003の場合、以下のようなメッセージがイベントログ(システム)に出力されます。


  イベントログ(システム)―
  ----------------------------------------------------
  ソース:Win32k
  イベントID:244
  詳細:デスクトップ ヒープがなくなったたためデスクトップ
        を作成できませんでした。
        詳細な情報は、http://go.microsoft.com/fwlink/events.asp
        の [ヘルプとサポート センター] を参照してください。
  ----------------------------------------------------

ただし、このエラーメッセージは、デスクトップヒープがなくなる度に毎回出力されるわけではありません。OSを起動後、最初にデスクトップヒープが枯渇した時点で一度だけ出力されます。

なお、デスクトップヒープが不足している場合、以下のようなメッセージがイベントログ(システム)に出力されます。


  ----------------------------------------------------
  ソース:Service Control Manager
  イベントID:7000
  詳細:WebOTXMonitor XXXX サービスは次のエラーのため開始でき
        ませんでした:そのサービスは指定時間内に開始要求または
        制御要求に応答しませんでした。
  ----------------------------------------------------
  ----------------------------------------------------
  ソース:Service Control Manager
  イベントID:7009
  詳細:WebOTXMonitor XXXX サービスへの接続中にタイムアウト
        (30000 ミリ秒) になりました。
  ----------------------------------------------------
  ※XXXXは、サービスを開始できなかったWebOTXシステム

上記のエラーメッセージはデスクトップヒープ不足以外にも出力されるメッセージとなります。

3. 発生時の対処

デスクトップヒープの不足が疑われる場合、即時復旧させるためには不要なサービスを終了させた後WebOTXを再起動してください。

また障害を再現させないためには、デスクトップヒープのサイズを変更してWebOTXを再起動してください。

4. デスクトップヒープのサイズ

4.1. デスクトップヒープのサイズ

以下のレジストリの値を確認してください。

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows

この値の既定値は次のようになっています。

  %SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows
  SharedSection=1024,3072,512 .......

この中の SharedSection= を確認してください。

サイズの変更を行う場合は、この「SharedSection」に3つの整数値を設定し、マシンを再起動してください。

4.2. サイズの変更

既定のサイズを変更する場合、過剰なヒープサイズの変更はパフォーマンスに悪影響を与える恐れがあります。マイクロソフトでは既定値のサイズでの使用を推奨しているため、適切な指標サイズというものを設けていません。そのため、例えば256KBずつ増やして確認しながら調整する必要があります。

また、設定値が低い場合は登録したアプリケーションの起動に失敗する可能性がありますが、高くしすぎるとWindowsサービスの起動に失敗する可能性があります。

起動に失敗したサービスがWebOTXであった場合、運用管理ツールが接続できなくなる、クライアントアプリケーションが接続できなくなる、などの障害が発生します。本番環境で設定する前に、評価環境で調整することを推奨します。

デスクトップヒープの合計サイズは、システム全体で48MB内に収める必要があります。この48MBというサイズを超えてデスクトップを生成しようとした場合、

イベントID:244「デスクトップ ヒープがなくなったたためデスクトップを作成できませんでした」
(Windows Server 2003)

というエラーが発生します。イベントIDのみ出力され、メッセージは出力されない場合があります。

48MBというサイズはマシン機種やメモリなどの環境によって変わるものではなく、OSの仕様上設定されているサイズとなります。また、この上限値を変更することはできません。

このため一個のヒープサイズを大きくすると、ある特定の共有デスクトップを使用して起動するプロセスの起動総数は増加しますが、システム全体で作成できるデスクトップ総数は少なくなります。

またその逆にヒープサイズを小さくすると、システム全体で作成できるデスクトップ総数は多くなりますが、ある特定のデスクトップを共有するプロセスの起動総数は少なくなります。


関連情報
なし