休止状態への移行に失敗する問題 2011-02-18 (Fri) 02:00

マシンを組み替えて以来、希に休止状態への移行に失敗するようになった。
希にしか起こらない現象で、原因も判然としない。
毎回シャットダウンするようにすればよいのだろうが、それではWindowsの起動・終了共に余計に時間が掛かるようになる。
休止状態からの起動とシャットダウン状態からの起動とでは雲泥の差と迄はいかなくとも結構な違いがある。
やはりこれはなんとか解決したい、ということで調べてみた。

Windows XP Service Pack 2、Windows XP Tablet PC Edition 2005 または Windows XP Media Center Edition 2005 を実行するコンピュータで、休止状態にならず、エラー メッセージ "システム リソースが不足するため、API を終了できません" が表示されることがある (文書番号: 909095)

以下抜粋して引用

現象

Microsoft Windows XP Service Pack 2 (SP2)、Microsoft Windows XP Tablet PC Edition 2005 または Microsoft Windows XP Media Center Edition 2005 を実行するコンピュータを使用しています。コンピュータを休止状態にしようとしても、休止状態にならないことがあります。この問題が発生したときには、次のようなエラー メッセージが表示されます。

システム リソースが不足するため、API を終了できません。


この問題が発生した場合、コンピュータを再起動しない限り、コンピュータで休止状態機能を使用することはできません。

この問題は、一般に、1 GB 以上の RAM を搭載しているコンピュータで発生します。

注 : Windows XP Tablet PC Edition 2005 および Windows XP Media Center Edition 2005 には、Windows XP SP2 の機能とコンポーネントが含まれています。


原因

この問題は、Windows カーネル パワー マネージャが、コンピュータを休止状態にするのに十分なメモリ リソースを確保できないことが原因で発生します。


詳細

コンピュータを休止状態にするために、Windows カーネル パワー マネージャは連続したメモリ ブロックを必要とします。このメモリのサイズは、コンピュータで使用されている物理メモリ領域の大きさに比例します。コンピュータを休止状態にするときには、使用している RAM の容量が大きいほど、必要となる物理メモリ領域も大きくなります。したがって、コンピュータを休止状態にするために、より大きな連続したメモリ領域が必要になります。

また、コンピュータが使用しているプログラム、サービス、デバイス ドライバに応じて、必要となる物理メモリ領域の数が変わります。このため、場合によって休止状態機能が失敗することがあります。

休止状態機能が失敗したことが Windows カーネル パワー マネージャで検出されると、コンピュータを再起動するまで休止状態機能は無効になります。


1 GB 以上の RAM を搭載したコンピュータの休止に関する問題 (文書番号: 330909)
以下抜粋して引用

現象

Windows XP ベースのコンピュータが休止しないことがあります。この問題は次の条件に該当する場合に発生することがあります。

* コンピュータに 1 GB 以上の RAM が搭載されている。
* コンピュータで複数のプロセスが動作中で、負荷の高い状態になっている。


状況

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。 Microsoft Windows XP Service Pack 2 では、このような現象が発生しにくくなるように、機能が強化されています。

注 : メモリが著しく断片化している場合は、この修正プログラムをインストールした後にも、休止状態の問題が発生する可能性があります。この問題が進行する速度は、ユーザーの実行するソフトウェアおよび使用方法によって異なります。



マイクロソフトのサポート情報から上記の2件が、どうやらこの件に関係してそうだ。
(どっちも同じような内容の情報だがどう違うのだ?)

筆者の新マシンのスペックは以下の通りで、

OS    : WindowsXP SP3
メモリ  : 1GB → 4GB

メモリを奮発して4GB搭載している。以前のマシンでは メモリを1GBしか積んでなかったのでこの現象は発生しなかった訳だ。
Windowsを再起動しない限り、休止状態機能を使用することが出来ないというのも一致している。
だが待て! うちのXPは既にSP3を適用してあるので、これらの問題は既に解消されているはずだ。
ただし上記のサポート情報をよく見てみると、どちらの情報にも場合によっては休止状態への移行に失敗する可能性がある旨の記述がある。(赤字部分)

この辺りを踏まえて、この現象をこんな風に要約してみた。(あくまで筆者の主観です)

コンピュータを休止状態にするためには連続したメモリブロックを必要とするが、休止しようとした際にメモリの断片化が激しいなどの原因で連続したメモリブロックが確保出来なかった場合に休止状態への移行に失敗する。
文書番号: 909095と文書番号: 330909 では、この問題が起こりにくいように調整したが、完全にこの問題が起こらなくなる訳ではない。


そもそも文書番号: 909095と文書番号: 330909 は現象は同じでも異なる原因によるものなのか単にダブっているだけなのか?よくわからない。
みたところどちらの文書でもメモリの確保がうまくいかずに休止状態への移行に失敗していると言ってるらしいので、この問題が起こらないようにするためには、休止状態に移行する前に、それに必要な連続したメモリブロックが確保出来るようにしてやればよいのではないかとの結論に至る。

メモリもHDDのように使っているうちに断片化したりするのか。初めて知った。
ということはメモリも HDDみたくデフラグ出来たりするのか?
調べてみると、

メモリデフラグ機能を搭載したコンパクトなメモリ管理ソフト「BeMem」

こんな Toolを発見。
この Toolは常駐・手動どちらでも使えるようだ。とりあえず、時々手動でこの Toolを実行してやることでここ数ヶ月休止状態への移行に失敗することはなくなった。
ただ、休止状態にする前にメモリを目一杯使用していて、断片化と無関係にメモリブロックが確保出来なかったら結局休止状態への移行に失敗するんだろな。まぁそれほど大量にアプリを起動したままで休止状態に移行することは殆どないのでよしとしておこう。
関連記事

コメントの投稿

管理者にだけ表示を許可する

注意事項
基本的にこのブログはブログ主の備忘録です。

ブログの内容にはブログ主の主観や時には正確でない情報が含まれていることもあります。書いてある内容がすべての環境にあてはまることを保証するものでもありません。

また、過去の記事は現時点で既に陳腐化していることもあります。

その辺をご理解の上で当ブログ内に書いてあることを試す場合は自己責任でお願いします。

記事内容の誤りの指摘、疑問点の回答などコメント頂けると助かります。
カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
ブログ内検索
カラーコードチェッカ
カラーコードの確認
入力例) #ffffff | blue
カテゴリ
最新記事
最新コメント
最新トラックバック
リンク
ブロとも申請フォーム

この人とブロともになる

メールフォーム

名前:
メール:
件名:
本文: