Windowsの仮想メモリについて
これはあるAWSで稼働するWindows Serverで、Cドライブの空き容量不足のアラートが上がったので色々調べて対応した話。
調査
1.Cドライブの空き容量
アラートの翌日にディスク容量を確認するも、特に問題が見当たらない。インストールしているミドルウェアはすべて別ドライブにあるためミドルウェアのログや処理の過程で作られる一時ファイル等が原因ではなさそう。
2.仮想メモリ
アラートが発生した時間帯のイベントログを確認していると、ちょうどアラートのメールが飛んできた時間に、「ページングファイルを拡張中」、「拡張中はアプリがメモリを利用できなくなることがある」といったメッセージを確認。ページングファイルの設定を確認すると、OSによる自動管理になっていた。ページングファイルの保存先を確認するとCドライブになっていたためページングファイルが原因の可能性が高いと推測。
仮想メモリってなんだ?
物理メモリは気にしていたけど仮想メモリについてはあまり気にしていなかったのでWindowsにおける仮想メモリの考え方について調べてみた。
まずは流行りのChatGPTに聞いてみた。
Microsoftのサイトで調べてみた。
だいたい合ってますね。
このクラウド時代においてはあまり考慮しなくても良さそうではあるもののコストの関係もあったりするのでスペックを限りなく増やすことはできないので対応は必要そう。
調査の結論
Cドライブの容量が足りてない
純粋に物理メモリが足りてない
ひとまずスペックを上げる前にページングファイルの保存先を変更してみることにしました。
その理由としてはすべてのドライブが同じタイプのEBSボリュームを使っていてディスクの性能が変わらず別のドライブの方がディスク容量が大きいからです。
ページングファイルの保存場所の変更もChatGPTに聞いてみた。
さらにWebでも調べてみた。
サーバーの再起動が必要ですね。
設定変更
本番環境は定期的にサーバー再起動があるので、そのタイミングに合わせて設定変更。
変更後の状況
当たり前ですがCドライブのディスク容量不足のアラートは出なくなりました。仮想メモリ頼みなのはパフォーマンスには良くないのでEC2のスペックを上げないと劇的な改善は見込めなそうです。
この記事が気に入ったらサポートをしてみませんか?