Questo articolo si applica alle seguenti versioni di Microsoft® Windows Server®:2008, 2012,2012 R2, 2016 e 2019.
I server hanno due tipi di memoria:memoria ad accesso casuale (RAM) e memoria virtuale. Tutti i programmi utilizzano la RAM. Ma quando i programmi non hanno RAM sufficiente per essere eseguiti, Windows® sposta temporaneamente le informazioni normalmente memorizzate nella RAM in un file sul disco rigido chiamato file di paging. Questa memorizzazione temporanea dei dati in un file di paging è nota come memoria virtuale.
L'uso della memoria virtuale per spostare le informazioni da e verso un file di paging libera abbastanza RAM per il corretto funzionamento dei programmi. Problemi di memoria insufficiente possono verificarsi nelle seguenti condizioni:
-
Quando il server esaurisce la RAM e la memoria virtuale si esaurisce.
-
Quando esegui più programmi di quanti ne possa supportare la RAM installata sul server.
-
Quando un programma non libera memoria di cui non ha più bisogno, si parla di uso eccessivo della memoria o perdita di memoria.
Determinazione dell'utilizzo della memoria
È possibile utilizzare il seguente script di PowerShell® per determinare l'utilizzo della memoria corrente:
$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";
L'output dovrebbe essere simile alle seguenti informazioni trovate in Task Manager:
----------------------------------------
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
-----------------------------------------------------------------
Dopo aver determinato il processo principale che utilizza la memoria, puoi quindi esaminare eventuali problemi con il servizio. Potrebbe essere necessario riavviare il servizio o il server.
I seguenti servizi possono causare un utilizzo elevato della memoria:
- Microsoft SQL Server®
- Processi di lavoro di Internet Information Services (IIS) (w3wp)
- CommVault®
- Sophos®