2010年1月21日木曜日

システムリソースが不足しているため、要求されたサービスを完了できません。

Windows XPの「システムリソースが不足しているため、要求されたサービスを完了できません。」のエラーに対する対応方法は、対症療法的にレジストリでリソースの量を増やします。

レジストリエディタで次のキーを探します

HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥SessionManager¥SubSystem

Windowsというキーの値が3072になっていますがこれを増やします 。
(「SharedSection=1024,3072,512」の部分を「3072」(3MB)から「6144」(6MB)に変更して「OK」ボタンをクリックする。この値は256の整数倍で指定する。 )


4096か5120、6144あたりに増やします。

(単純に256の倍数です。3072≒3MBなので4MBあるいは5MBということです。)

XPは標準ではリソースを確認するツールはありません。
(Microsoftが配布しているProcess Explorerというツールと使えば確認できます)

リソースはWindowsが各プロセスを管理するためのメモリ領域で初期値は3072KBです。
メモリの量を増やしてもリソースに割り当てられたメモリが増えるわけではないのでリソースを使いきった段階でエラーが出たりシステムが不安定になります。

作りの甘いアプリケーションはリソースを無駄にします。
何らかのアプリケーションを起動している最中にリソース不足のエラーが出る場合は、そのアプリケーションを疑うべきです。
特にメモリリーク(リソースリーク)の場合はシステムリソースの量を増やしても、時間がたつにつれていずれはエラーが出てしまいます。

メモリが安価になったため大きく増やせばよいかというと、かなずしもそうではないようです。コツとしてはすこしづつ増やしてください。

0 件のコメント:

コメントを投稿