Windows7のメモリとページファイルを極限まで小さくして、アプリケーションのインストールやWindows Updateのテストを行ってみました。
Windows Update中に「エラー8007000E」が良く発生する人は、このページ内の情報が少しは役に立つかもしれないです。
補足注意1
この検証は2016年2月に行っています。
最新の Windows Update Client を利用している限り、このページに書いてあるような問題は発生しません。
現在、1~2か月に1度のペースでWindows Update Clientが更新されており、この検証内容は既に古いものになっています。
補足注意2
この検証は「Windows7クリーンインストール直後」から「最新の状態」まで、200個超の更新プログラムを一気にアップデートした時のものです。毎月Windows Updateを行っている場合は、以下のような長い時間はかかりません。
テスト環境
ネットブック登場初期の頃のような、Windows7の要件をギリギリ満たしていそうな環境をVMware上で作ってみた。
テストに使った構成
OS: x86版 Windows7 SP1(VMware上)
CPU: 2コア (4.1GHz)
メモリ: 1GB
HDD: 60GB (7200rpm)
ページファイル: 200MB
※デスクトップやノートPCの場合なら、メモリ2GBあたりが最低か?
先に結論
- Windows Updateで非常にエラーが出やすい状態になった。
- エラーは主に「8007000E」
- エラーによっては「更新の確認」に時間がかかるようになった
(今回60~70分待ちコースに突入した。3時間待ちコースには行かなかった)
- しかしアップデートにかかる時間そのものは (大量にメモリを積んだ場合と) 変わらない。
- 今回(メモリが少ない状態で) Windows7無印から最新の状態まで、アップデートにかかった時間は7時間半
- 時間がかかったのは途中で「エラー 8007000E」が発生したため
「KB3068708」のインストールに40分余計に時間がかかった
「更新の確認」に70分余計に時間がかかった - 上記2点のトラブルを除くと、アップデートにかかった時間は5 時間40分。
- 時間がかかったのは途中で「エラー 8007000E」が発生したため
- メモリに余裕がある状態で「Windows7無印から最新の状態」一気にアップデートしても、順調に進んだ場合で5時間40分。全く同じ。
- いかにエラーを起こさないようアップデートするか、が大切になる。
参考: Windows Updateのエラー8007000Eの対処方法
- いかにエラーを起こさないようアップデートするか、が大切になる。
- 今回(メモリが少ない状態で) Windows7無印から最新の状態まで、アップデートにかかった時間は7時間半
とりあえず、この検証で「2015年9月以降に発生した更新の確認が終わらない現象」には KB3050265 は不要と判断できた。
「2015年4月~8月に発生した同様の現象」と(原因は同じだけれど) 問題発生のメカニズムや対処方法は異なる。
テスト1: 仮想メモリを200MBに
まずは x86版 Windows7 SP1(VMware上)で、
メモリ 1GB、ページファイル 200MB に設定してみる。
▲クリックで拡大
VMwareにWindows7をインストールした場合、ページファイルを200MB以下に設定すると上図のような警告が出る。という事で、ページファイルを200MBに設定してみる。
Windows Updateでテスト
メモリ1GB+仮想メモリ200MBの場合、Windows Update中に、メモリ不足が発生してしまった。
▲クリックで拡大
Windows Updateを始めることすら出来ない。
メモリ不足が発生すると、上図のようなメッセージが出る。
常駐タスクを極力減らす、クリーンブートする、エアロを切る、等々、色々な施策を実行してみる。
▲クリックで拡大
それでもメモリ不足の警告が出る。
あと「エラー 8007000E」が発生した。
この程度ではまったく効果はない模様。
テスト2: 仮想メモリを増やしてみる
実メモリ1GBのまま、仮想メモリを1.5GBまで増やしてみる
▲クリックで拡大
SP1化直後、最初の200個超の「更新の確認」は無事終了した。
▲クリックで拡大
更新プログラムのリスト取得にかかった時間は82分。
x86版Windows7 +メモリ1GBの環境でも、ページファイルをしっかり設定していれば、4コアCPUやメモリを潤沢に用意したPCと変わらない時間で更新可能となった。
しかし、シャットダウン時の適用で止まる。。。
▲クリックで拡大
上図はSP1インストール直後、最初の200個超の更新プログラムをインストールしている所。
93個めの更新の所で、CPU使用率、ディスクアクセス、ともに殆どゼロの状態が40分くらい続いた(メモリ2GB以上の場合は順調に進んだ。)
32bit版Windows7の場合、メモリ1GBは厳しいようだ。
※この時に電源ボタン長押しで強制終了させた時の挙動チェックは別ページで紹介しています。
この場合も、エラーコードは「8007000E」
▲クリックで拡大
ちなみに、PCが停止して失敗が発生した更新プログラムは「KB3068708」
「更新履歴の表示」を開いてみると、92個の更新プログラムは適用出来ているように見えるが、Windows内のデータベースに「適用済みの更新プログラム」が正しく記録されていないようで、その後の「更新の確認」に70分かかった。
この2度目のチャレンジで残りの更新プログラムは無事 適用できた。
Windows Updateのテスト終わり。
以下、その他のテストとまとめ。
その他のテスト: スタンドアロン版 .NET Framework 4.6.1の場合
仮想メモリを200MBに戻し、
スタンドアロン版 .NET Framework 4.6.1でテストしてみる。
ダウンロードは以下から
.NET Framework 4.6.1 ダウンロード
テスト結果
▲クリックで拡大
「メモリ不足」の警告が出てインストーラーが止まってしまった。
.NET Framework 4.6.1のスタンドアロン版がインストール出来ない。
ただし、ちょっとだけ常駐サービスを終了させる事でインストール可能になった
▲クリックで拡大
ギリギリでインストール出来る感じだが、メモリ1GB、ページファイル200MBではかなり厳しい。
メモリとページファイルが小さいと、非常に高い頻度で「エラー 8007000E」が発生する。
メモリやページファイルを極限まで小さくしたPC環境では、Windows Update中に非常に高い頻度で「エラー8007000E」が発生した。
今回の場合、ページファイル1.5GBくらい(実メモリの1.5倍)まで増やしても、まだ足りない感じ。ページファイルをOSの推奨設定(自動)にしたらようやく「エラー8007000E」は(ほぼ) 発生しなくなった。
(メモリ1GBでは、このエラーを完全に抑え込むのは難しいと感じた。)
メモリ1GBの場合、ページファイルはどれくらい必要か?
Windows7は、32bit版 + メモリ1GBの場合、ページファイル2GB あれば何とかなるかな・・・・?という感じ。ただしギリギリ。
ページファイルを1.5GBの場合は、クリーンインストール直後の状態でも結構アップデート失敗する。
このページの情報は以上です。