メモリに余裕があるのに「out of memory」の謎!カギは仮想メモリ?

※当ページはアフィリエイトプログラムによる収益を得ています。

今回は2か月ほど前から私のPCに発症している謎の不具合を報告したいと思います。

その不具合とは「物理メモリには余裕があるのに、メモリ不足というメッセージが出る」「ブラウザやUIがフリーズする」「画面が一瞬真っ暗になる」というもの。

明らかにメモリ不足っぽいのですが、使用メモリ量は50%にも到達していません。この件を調べていくと、意外と根深いことがわかりました。

Yotube動画で頻発する「out of memory」

2024年の秋ごろでしたでしょうか。Google Chromeで複数タブを開き、そのうちのいくつかでYoutube動画を再生していると、突然「out of memory」というエラーが出てブラウザが真っ白になる事象が発生。

当初はGoogle Chromeの不具合かなと考えて、「ハードウェアアクセラレーションをオフ」「アクティブでないタブは読み込まない」などの設定変更を加えたのですが、すぐに再発。

どうやら調べていくとGoogle Chrome以外のブラウザでも発症する事象のようです。

この事象は、PCを立ち上げっぱなしにして数日~1週間程度で発生し、ひどいときはPC自体が操作不能になったり、モニターが一瞬真っ暗になって復帰したりと、なかなかヘビーな症状につながりました。

そこで本格的に原因を調べたところ、意外な事実が判明しました。

「メモリの”コミット済み”が増え続ける」

まず原因ですが、端的に言うと「ページングファイルのコミット済み領域が増え続け、最終的にストレージを圧迫してクラッシュする」という内容でした。

タスクマネージャーのパフィーマンスタブでメモリを選択すると、下のほうに「コミット済み」という項目があります。

これは「10.1/63.7」のように表記されていて、正式名称は「コミットチャージ / コミットリミット 」というらしいですね。

このうち、右のコミットリミットは「物理メモリ+ページングファイルの合計」で、左のコミットチャージは「コミット済み(使用される予定として確保された領域)」です。

コミットチャージ領域は、動画を見たりネットサーフィンをしたりするうちに増えていくのですが、普通は使わないと判断されれば減ります。

しかし今回の事象ではコミットチャージの数値が永遠に増え続け、最終的にはコミットリミットに到達し、ページングファイルを設定したSSDを圧迫してクラッシュ、という流れのようです。

正直私も詳細な原因特定に至っていないのですが、後述する対策で解決するのでこの仮定に落ち着きました。

対策は「ページングファイルのオフ→オン」

不具合が起こると何度再起動してもコミットチャージの数値が減らないので、以下の設定からページングファイルをオフにして強制開放し、さらにオンにすると治りましたね。

・システム→システムの詳細設定→パフォーマンス→詳細設定→仮想メモリ 変更ボタン押下→ページングファイルなし

上の設定でページングファイルがなしになるので、いったん再起動し、その後に任意の値をページングファイルに設定すると治りました。

しかしまたじわじわと増えていくので、根本的な解決には至っていません。ブラウザが原因なのか、ハードウェアのドライバが原因なのかわからないですが、KP41病以来の面倒くささですね。

もし同様の事象が発生した方は、ページングファイルのオフ→オン(オフのままでも問題なし)を試してみてください。