このトピックでは、Windows Server 2003 または 2008 を実行する Elastic Compute Service (ECS) インスタンスにおける仮想メモリ不足によって引き起こされる問題と、その解決策について説明します。
問題の説明
Windows Server 2003 または 2008 を実行する ECS インスタンスの仮想メモリが不足すると、次のようなさまざまな問題が発生する可能性があります。
オペレーティングシステムの実行が遅くなったり、応答しなくなったりします。リモートデスクトップを使用してインスタンスに接続すると、青いバックグラウンドが表示されます。
VNC 接続でユーザー名とパスワードを入力した後、ログインプロセスが [ようこそ] 画面で停止します。
インスタンスへのリモートデスクトップ接続が失敗し、The paging file is too small for this operation to complete というエラーメッセージが返されます。
サービスのインストールに失敗することがあります。たとえば、IIS、.NET Framework、FTP などのサービスをインストールする際に、インストールプロセスで Not enough resources というメッセージが表示されたり、応答しなくなったりすることがあります。
MySQL サービスなどのサードパーティ製サービスのインストールに失敗したり、インストール後に起動できなくなったりします。
Windows Update が失敗します。
システムに out of virtual memory というエラーメッセージが表示されます。メモリ割り当ての失敗により、アプリケーションが予期せずシャットダウンします。
サーバーマネージャーを開くと、MMC has detected an error in a snap-in and will unload it というエラーメッセージが表示されます。
サーバーマネージャーコンソールが起動直後に自動的に閉じ、Microsoft Management Console has stopped working というメッセージが表示されます。
これらの問題のエラーメッセージのスクリーンショットについては、「仮想メモリ不足の一般的な症状」をご参照ください。
原因
システムが仮想メモリを使い果たす原因として、次のものが考えられます。
物理メモリリソースの不足。
システムにページングファイルが設定されていない、または設定されているページングファイルが小さすぎる。
システムにメモリリークがある。これには、他の種類のコアリソースのリークも含まれます。
Windows オペレーティングシステムでは、カーネルとアプリケーションがメモリ管理に仮想メモリを使用します。物理メモリは限られたリソースであるため、Windows はページングファイルを使用して仮想メモリを実装します。例えば、32 ビットのオペレーティングシステムでは、各プロセスが専用の 2 GiB のユーザーモード仮想アドレス空間を持ちます。すべてのアクティブなプロセスのメモリ使用量が利用可能な物理メモリを超えると、オペレーティングシステムは仮想アドレス空間の 1 つ以上のページ (4 KiB) をコンピューターのハードディスクに移動します。これにより、物理メモリが解放され、他の用途に使用できるようになります。Windows では、これらのページアウトされたページは、パーティションのルートディレクトリにある 1 つ以上のファイル (Pagefile.sys) に保存されます。
Windows のグラフィカルインターフェイスは、多くのユーザーに人気のある選択肢です。ECS インスタンスを購入する際、Windows オペレーティングシステムを選択するには、少なくとも 1 GiB のメモリが必要です。1 GiB のメモリでシステムを実行するには十分ですが、環境を設定して追加のソフトウェアをインストールした後に、メモリ不足の問題が発生することがあります。
ソリューション
ステップ 1:メモリ不足の問題の確認
仮想メモリ不足の問題が発生した場合、システムログまたはタスクマネージャーで確認できます。
方法 1:システムログの確認
Windows Server 2003 または 2008 を実行している ECS インスタンスに接続します。
詳細については、「接続方法」をご参照ください。
[ファイル名を指定して実行] ウィンドウを開き、eventvwr.exe と入力して [OK] をクリックします。
[イベントビューアー] で、[Windows ログ] > [システム] を選択します。
システムログで、イベント ID 2004、ソース Resource-Exhaustion-Detector のプロパティを持つシステムイベントを見つけます。
イベントをクリックして、仮想メモリ不足イベントの詳細を表示します。
詳細には、mysqld.exe が大量の仮想メモリを消費していることが示されています。
方法 2:タスクマネージャーの確認
Windows Server 2003 または 2008 を実行している ECS インスタンスに接続します。
詳細については、「接続方法」をご参照ください。
タスクバーを右クリックし、[タスクマネージャーの起動] を選択します。
[Windows タスクマネージャー] ウィンドウで、[パフォーマンス] タブをクリックして、コミット済みメモリと仮想メモリの制限の比率を表示します。
コミットチャージ (MB) は、コミット済み仮想メモリと仮想メモリの制限の比率です。Microsoft の公式ドキュメントによると、3790/4093 のコミットチャージは 80% を超えており、システムのメモリが不足していることを示します。
ステップ 2:メモリ不足の問題の解決
メモリ不足の問題が発生した場合は、次の解決策を試してください。
方法 1:システムにデフォルトでページングファイルが設定されていない場合は、手動でページングファイルを設定できます。詳細については、「Windows インスタンスの仮想メモリの設定」をご参照ください。
方法 2:ページングファイルを設定してもメモリ不足の問題が解決しない場合、原因は次のいずれかである可能性があります。
アプリケーションのメモリ要件が高い。これを解決するには、インスタンスタイプをスペックアップして ECS インスタンスの物理メモリを増やし、それに応じてページングファイルのサイズを増やします。詳細については、「インスタンスタイプのスペックアップとスペックダウンの概要」をご参照ください。
メモリリークを確認します。
仮想メモリ不足の一般的な症状
以下は、仮想メモリ不足によって引き起こされるさまざまな問題です。
リモートログイン時に青い画面が表示される。
リモートログイン中に、ページングファイルが小さすぎるというメッセージが表示される。
コンソールの管理端末を使用してサーバーにログインすると、ログインプロセスが [ようこそ] ページで停止する。
IIS をインストールすると、Not enough system resources というメッセージが表示される。
.NET Framework または FTP をインストールすると、Not enough system resources エラーが表示されることがある。
ワンクリックインストールパッケージを使用して Windows Server 2008 に MySQL をインストールするとエラーが発生し、インストール後に MySQL が起動できない。
他の MySQL インストール方法がハングする。
WAMP をインストールした後に wampmysqld サービスを起動すると、The wampmysqld service on Local Computer could not be started というメッセージが表示される。
ロールを追加すると、The paging file is too small for this operation to complete というメッセージが表示される。
[サーバーマネージャー] を開いた後、自動的に閉じて Microsoft Management Console has stopped working というメッセージが表示される。
[サーバーマネージャー] を開くと、MMC has detected an error in a snap-in and will unload it というメッセージが表示される。
Tomcat を起動すると、Windows - Out of Virtual Memory というメッセージが表示される。
VNC 接続を使用してインスタンスに接続すると、Your system is low on virtual memory というエラーメッセージが表示される。
SQL Server 2008 のインストールがハングする。