vrchat起動時ブルースクリーン問題、自己解決(多分)

vrchat起動時、時々だがブルースクリーンが発生するようになった問題が(おそらくだが)解決したので原因その他を書き残す。

結論を書くなら、原因は「システム設定で仮想メモリを4096MBにしていた」ことで、自動設定にして解決。

ここから解析と解決までの詳細な結果。
イベントビューアから見えるエラー内容はKernel-Power 41,いわゆるKP41。特定の原因で発生するわけではなく、厄介なエラー。

厄介なエラーなので定番の対応から、それからメモリエラーって事で物理的接触不良。

・メモリを物理的に差し直し
購入して数年で接触不良を考えたので。

・vrchatの入れ直し
1回アンインストールして再インストール。

・システム修復
コマンドプロンプトを管理者権限起動して以下の2つ。
sfc /scannow
DISM /Online /Cleanup-Image /RestoreHealth

ここまでやって全く効果無し。

メモリエラーって事で別アプローチ。
vrchat起動前にメモリ解放ソフトの使用。他ソフトのメモリ戦友が上手く解放されていないのでは?と考えた。
以前も少し使ってた「メモリの掃除屋さん」

all.undo.jp…やはり効果無し。メモリ管理が下手だった昔のOSとは違うか。

 

ここまで試行錯誤していて2つ、気付く。

まず、VMware Workstation Player(以下VM)というソフトウェアの起動後にvrchat起動で必ず発生する。また、このソフトは性質上仮想メモリを大食いすると予想される。そこから試した結果、VMを終了後も仮想メモリは食われたままなのか、起動中で無くても起動後ならOS再起動しない限り発生する。
また、以前にvrchat起動中にVM起動しようとしたら「仮想メモリ不足」のエラーが出て起動出来なかった。なら、逆もあるのでは。かつ、VM側は仮想メモリ残量を厳密にチェックしているので起動を蹴ってくれるがvrchatはそこら辺適当なので不足でも気にせず起動してシステム領域などを食いに行ってブルースクリーンになる?

そこまで考えた結果、仮想メモリ設定確認。

システムの仮想メモリ設定画面


手動で4096MBになっていたので自動管理するように「システム管理サイズ」に変更、OS再起動(変更反映に必要)。その後、VM起動→vrchat起動しても再現しなくなった。

確認すると、上の画像みたいに4096MBでは不足してそれ以上使用する場面のあるのと確認。
今回はVMが問題だったが、おそらく他に仮想メモリを多めに食うソフトウェアでも起こる可能性がある。

そもそも、何故、システムで仮想メモリを変更して固定値4GBにしていたのか。
理由は、かつてのノウハウを引きずっていただけ…メインディスクがHDDの時代、仮想メモリが可変だと領域が断片化して速度低下の懸念があった。固定化する事で猟奇を固定で確保し、仮想メモリ空間断片化を防ぐ効果があった。
ただ、システムディスクをSSDにした現在では断片化を気にする必要が無く、結果何となくでマシン初期設定時に固定していただけという事になる。
また、物理メモリを32GB積んでいれば仮想メモリはさほど使用しないだろう、ということで4GBに固定した。

次に繋げるとすれば「新しいマシンを買った時に仮想メモリ設定は弄らす初期設定から変更しない」ということになる。

解決まで2~3ヶ月程度?ブルースクリーンは十数回。
vrchat→VMでのエラーに気づけたのが幸いだった。