ページング ファイルとゲーム: 無効にすると逆効果になる理由
Windows がプログラムに約束できるメモリは、RAM とページング ファイルを合わせた量までです。ページング ファイルをなくすと、その上限は RAM よりわずかに少ない量まで下がり、そこに達したゲームはフリーズしたりクラッシュしたりすることがあります。
RAM が 32 GB あるので、ページング ファイルは小さなマシンの名残りで不要だとガイドに書かれていました。あるいは、タスク マネージャーには空き RAM がたっぷりあると表示されているのに、ゲームがメモリ不足のエラーでクラッシュしました。あるいは試合の最中に、Windows が「Your computer is low on memory」と表示し、プログラムを閉じるよう求めてきました。
3 つとも同じ仕組みから来ており、それは「オフにしよう」という助言が前提にしている仕組みではありません。
ページング ファイルは何のためにあるか
Windows はメモリを 2 段階で渡します。プログラムはまずメモリをコミットします。これは Windows がその領域の存在を約束することで、実際に書き込むのはその後です。Microsoft の ページング ファイルの概要 は、その約束の上限を定義しています: システムのコミット制限は、物理メモリとすべてのページング ファイルを合わせた合計です。
すべての約束の合計がコミット チャージで、使用中の RAM と同じではありません。コミット済みメモリに関する Microsoft のパフォーマンス ガイド は、コミット済みのメモリは必ずしも書き込まれたり触れられたりしているわけではないので、物理メモリにまだ十分な空きがあってもチャージが制限に達することがあると指摘しています。タスク マネージャーに空き RAM が表示されているのにゲームがメモリ不足になるのは、こういうわけです。
ページング ファイルには 2 つ目の役割があります: 変更されたもののめったに使われないメモリを保持し、Windows がそれを RAM から追い出して、その RAM をもっと忙しいものに渡せるようにすることです。3 つ目の役割であるクラッシュ ダンプについては、下に独立した節があります。
ページング ファイルがないとどうなるか
ページング ファイルがない場合、Microsoft の ページング ファイルのサイズのガイド によると、コミット制限は搭載されている物理メモリよりわずかに少なくなります。すべてのプログラムの約束が、約束されてまだ使われていないメモリも含めて、RAM の中に収まらなければならなくなります。
チャージが制限に達すると、概要によれば、システムとプロセスがコミット済みメモリを得られないことがあり、それがフリーズ、クラッシュ、その他の誤動作の原因になりえます。Mark Russinovich は 2008 年に Windows の仮想メモリについて書いた記事で、はっきりこう述べています: コミット制限に達すると、メモリをコミットする割り当ては失敗します。その瞬間にメモリを求めたゲームは、それを得られません。
彼は速度の議論にも答えています。ページング ファイルがないほうが性能がよくなると感じる人もいて、一部の負荷ではそうかもしれない、と彼は書いています。しかし一般には、ページング ファイルがあれば Windows は実際に使われていないページを書き出せるので、システムが使えるメモリが増えます。Microsoft の概要は、ページング ファイルを必要とする製品やサービスもあると付け加えています。
クラッシュ ダンプにも必要
Windows が Stop エラーでクラッシュしたとき、何が失敗したかの記録は、既定ではページング ファイルを通して書き込まれます。Microsoft のダンプのドキュメントによると、RAM の内容は Windows がインストールされているパーティションのページング ファイルに書き込まれ、ダンプ機能が働くにはページング ファイルがブート ボリュームになければならず、別のボリュームに移していた場合は戻す必要があります。既定のダンプの種類である 自動メモリ ダンプ と、システム管理サイズ のページング ファイルでは、Windows は、ほとんどの場合にカーネル メモリ ダンプを取得できるようにページング ファイルのサイズを決めます。
仮想メモリのダイアログ自身もこれを警告しています: ページング ファイルを無効にするか、その初期サイズを一定のメガバイト数より小さく設定した状態でシステム エラーが起きると、Windows は問題の特定に役立つ詳細を記録できないことがあります。その詳細がなければ、ゲームがクラッシュした原因を調べる のが難しくなります。
上限にどれだけ近いかを確認する
タスク マネージャーを開き、パフォーマンス に進んで メモリ を選びます。コミット済み には 2 つの数値が表示されます: コミット チャージ、次にコミット制限です。プレイ中に 1 つ目が 2 つ目に近づくなら、使用中 (圧縮) の表示がどうであれ、このページで扱っている上限の近くにいます。
その比率のしきい値は、2 つの Microsoft のガイドで少し違います。上でリンクしたパフォーマンス ガイドは 75% を超えたら不足に近いとし、Microsoft の現在のパフォーマンスのトラブルシューティング ガイドは、0 から 50% を正常、60 から 80% を警告、80 から 100% を危険としています。
どのプログラムが約束を抱えているかを見るには、詳細 タブに、プロセスごとの コミット サイズ 列があります。非表示なら 列の選択 で追加します。Windows がすでにメモリ不足になったことがあれば、システム ログに Microsoft-Windows-Resource-Exhaustion-Detector のイベント 2004 が記録され、そのメッセージには仮想メモリを最も多く消費したプログラムの名前が書かれています。次の PowerShell コマンドで直近の 5 件を一覧できます:
Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Microsoft-Windows-Resource-Exhaustion-Detector'; Id=2004} -MaxEvents 5 | Format-List TimeCreated, Message
イベントが見つからなかったと表示された場合、ログにはそのようなイベントはありません。
どのくらいの大きさにすべきか
システム管理サイズ のままにしてください。サイズのガイドによると、ページング ファイルは既定でシステム管理になっており、適切なサイズはクラッシュ ダンプの設定とコミット チャージのピークによって決まり、システムごとに固有で、一般化できません。Russinovich が、RAM の何倍という昔の公式を役に立たないと言ったのも同じ理由です。
システム管理のページング ファイルは、自分で大きくなります。コミット チャージが制限の 90 パーセントを超えると、RAM の 3 倍か 4 GB のどちらか大きいほうまで大きくなりますが、ボリュームの 8 分の 1 を超えることはなく、ディスクに空き容量がある場合に限られます。ページング ファイルのあるドライブには、いくらか空きを残しておいてください。
文書化された例外が 1 つあります。Windows 10 と Windows 11 が対象として記載されている KB 4055223 で、Microsoft は、メモリを頻繁に割り当てるプログラムで不定期に起きるメモリ不足のエラーを説明しています。これは、自動のページング ファイルが大きくなる間の遅れから来ることがあります。その回避策は、初期サイズを RAM の 1.5 倍にしたカスタム サイズで、エラーが続く場合はさらに増やします。これは上の「一般化できない」という一文とも Russinovich とも矛盾するので、規則ではなく、その 1 つの症状に対する対処として扱ってください。
設定を変えるには、Win+R を押して SystemPropertiesAdvanced を実行します。パフォーマンス の下で 設定… を選び、詳細設定 タブを開いて、仮想メモリ の下の 変更… を選びます。一番上のチェック ボックスが すべてのドライブのページング ファイルのサイズを自動的に管理する です。その下に、ドライブごとに カスタム サイズ、システム管理サイズ、ページング ファイルなし があります。設定 でその選択をそのドライブに適用し、OK を選んで PC を再起動します。
SSD の摩耗
ページング ファイルをなくす理由として挙げられるもう 1 つが、SSD の摩耗です。Microsoft の Windows 7 のエンジニアリング ブログ は、2009 年のテレメトリでページング ファイルの読み取りが書き込みの約 40 対 1 で上回ったと報告し、SSD に置くのにページング ファイルよりふさわしいファイルはほとんどないと結論付けました。これは 2009 年の数値なので、今日の数値ではなく、傾向として受け取ってください。
新しいドライブでの規模の目安として、Samsung の 2022 年の 990 PRO のデータシート は、1 TB のモデルを 5 年間の限定保証のもとで書き込み 600 TB (どちらか早いほう) と定めています。均等に分ければ、5 年間毎日約 330 GB の書き込みです。この割り算は私たちのもので、Samsung のものではありません。
役に立たないこと
- RAM が十分にあるからとオフにすること。 そうすると制限は RAM のすぐ下になり、使われているかどうかに関係なく、すべての約束がその中に収まらなければなりません。
- 小さな固定サイズ。 制限は RAM とページング ファイルの合計なので、必要量のピークより小さいページング ファイルは、程度は小さいものの、同じように上限を下げます。
- Windows のドライブから移すこと。 上のとおり、クラッシュ ダンプにはブート ボリューム上のページング ファイルが必要です。
- メモリ最適化ツール。 Microsoft のパフォーマンス ガイドによると、いわゆるメモリ最適化ツールはカーネルにディスク キャッシュを削除させ、プロセスのワーキング セットを切り詰めさせるので、不要なディスク I/O が大量に発生します。
関連
ゲームに影響する Windows の設定はどれか、それぞれが誰に役立ち、誰には何の効果もないのか: ゲーム向けに Windows 11 を最適化する方法: 本当に意味のある設定
このページは役に立ちましたか?
何が足りなかったか、何がうまくいかなかったかを教えてください。いただいた内容はすべて読んでいます。
送信されるのは、入力した内容とこのページの名前だけです。サーバーは不正利用を防ぐために接続元の IP アドレスも記録し、報告と一緒に削除します。16 歳未満の方は、この欄を使わないでください。 プライバシー ポリシー
このページで解決しなかった場合は、ご連絡ください。どの記事を読んだかを書いていただければ、その記事を修正します。