この記事は、次のMicrosoft®WindowsServer®バージョンに適用されます:2008、2012、2012 R2、2016、および2019。
サーバーには、ランダムアクセスメモリ(RAM)と仮想メモリの2種類のメモリがあります。すべてのプログラムはRAMを使用します。ただし、プログラムに実行するのに十分なRAMがない場合、Windows®は通常RAMに保存されている情報を一時的にハードディスク上のページングファイルと呼ばれるファイルに移動します。ページングファイル内のこの一時的なデータストレージは、仮想メモリと呼ばれます。
仮想メモリを使用してページングファイルとの間で情報を移動すると、プログラムを正しく実行するために十分なRAMが解放されます。低メモリの問題は、次の条件下で発生する可能性があります。
-
サーバーのRAMが不足し、仮想メモリが不足した場合。
-
サーバーにインストールされているRAMがサポートできるよりも多くのプログラムを実行する場合。
-
プログラムが不要になったメモリを解放しない場合。これは、メモリの過剰使用またはメモリリークと呼ばれます。
次のPowerShell®スクリプトを使用して、現在のメモリ使用量を確認できます。
$ln="--------------------";
$sp=" ";
$M="Memory";
$os=gwmi win32_operatingsystem;
$TPMS="TotalVisible$M`Size";
$FPM="FreePhysical$M";
$TVMS="TotalVirtual$M`Size";
$FVM="FreeVirtual$M";
$TP=[int]($os.$TPMS/1mb);
$FP=[math]::Round($os.$FPM/1mb,2);
$PP=[math]::Round((($os.$TPMS-$os.$FPM)/$os.$TPMS)*100,2);
$TV=[int]($os.$TVMS/1mb);
$FV=[math]::Round($os.$FVM/1mb,2);
$PV=[math]::Round((($os.$TVMS-$os.$FVM)/$os.$TVMS)*100,2);
echo "`n$ln$ln`nCurrent $M Utilization:`n$ln$ln`nPhysical $M ($TP GB)`nAvailable: $FP GB`n % in use: $PP`%`n`nVirtual $M ($TV GB)`nAvailable: $FV GB`n % in use: $PV`%`n`n$ln$ln$ln$ln`nImage Name$sp$sp$sp`PID Session Name$sp Session# Mem Usage`n$ln$ln$ln$ln";
cmd /C "tasklist /NH /FI "MEMUSAGE gt 100000"|sort /R /+64";echo "$ln$ln$ln$ln";
出力は、タスクマネージャにある次の情報のようになります。
----------------------------------------
Current Memory Utilization:
----------------------------------------
Physical Memory ("amount" GB)
Available: "amount" GB
% in use: "amount" %
Virtual Memory ("amount" GB)
Available: "amount" GB
% in use: "amount" %
-----------------------------------------------------------------
Image Name| PID| Session Name| Session#| Mem Usage
-----------------------------------------------------------------
"service1" 1280 Console 2 707,216 K
"service2" 1124 Console 2 390,380 K
"service3" 6904 Console 2 362,920 K
"service3" 1300 Console 2 250,928 K
"service4" 7604 Console 2 243,760 K
"service5" 12928 Console 2 228,096 K
-----------------------------------------------------------------
メモリを使用している最上位のプロセスを特定したら、サービスの問題を調査できます。サービスまたはサーバーを再起動する必要がある場合があります。
次のサービスは、メモリ使用量が多くなる可能性があります。
- MicrosoftSQLServer®
- インターネットインフォメーションサービス(IIS)ワーカープロセス(w3wp)
- CommVault®
- Sophos®