GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Windows-Diagnose für geringen Arbeitsspeicher

Dieser Artikel gilt für die folgenden Microsoft® Windows Server®-Versionen:2008, 2012,2012 R2, 2016 und 2019.

Server haben zwei Arten von Arbeitsspeicher:Direktzugriffsspeicher (RAM) und virtueller Speicher. Alle Programme verwenden RAM. Wenn Programme jedoch nicht über genügend RAM zum Ausführen verfügen, verschiebt Windows® Informationen, die normalerweise im RAM gespeichert werden, vorübergehend in eine Datei auf Ihrer Festplatte, die als Auslagerungsdatei bezeichnet wird. Diese temporäre Datenspeicherung in einer Auslagerungsdatei wird als virtueller Speicher bezeichnet.

Durch die Verwendung von virtuellem Speicher zum Verschieben von Informationen in eine und aus einer Auslagerungsdatei wird genügend RAM freigegeben, damit Programme ordnungsgemäß ausgeführt werden können. Probleme mit wenig Arbeitsspeicher können unter folgenden Bedingungen auftreten:

  • Wenn dem Server der RAM ausgeht und der virtuelle Speicher knapp wird.

  • Wenn Sie mehr Programme ausführen, als der auf dem Server installierte Arbeitsspeicher unterstützen kann.

  • Wenn ein Programm keinen Speicher freigibt, den es nicht mehr benötigt, wird dies als Speicherüberbeanspruchung oder Speicherleck bezeichnet.

Speichernutzung ermitteln

Sie können das folgende PowerShell®-Skript verwenden, um die aktuelle Speichernutzung zu ermitteln:

$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";

Die Ausgabe sollte den folgenden Informationen im Task-Manager ähneln:

----------------------------------------
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
-----------------------------------------------------------------

Nachdem Sie den wichtigsten Prozess ermittelt haben, der Speicher verwendet, können Sie alle Probleme mit dem Dienst untersuchen. Möglicherweise müssen Sie den Dienst oder den Server neu starten.

Die folgenden Dienste können eine hohe Speicherauslastung verursachen:

  • Microsoft SQL Server®
  • Arbeitsprozesse für Internetinformationsdienste (IIS) (w3wp)
  • CommVault®
  • Sophos®

Linux
  1. So überprüfen Sie die RAM-Größe in der Linux-Befehlszeile in GB

  2. So überprüfen Sie die Serverlast auf einem Windows-Server

  3. Messung der RAM-Nutzung eines Programms?

  4. Python-Programm frisst RAM

  5. Protokollieren der RAM-Speicherobergrenze eines Linux-Prozesses

Intel Optane Speicher vs. SSDs vs. RAM

Installation des RAM-Speichertesttools Memtest+ auf Redhat 7 Linux

Swapiness unter Linux:Alles, was Sie wissen müssen

So löschen Sie den RAM-Speicher-Cache, den Puffer und den Swap-Speicher unter Linux

Neue Anwendung oder Befehl, der den Speicher wie Ccleaner in Windows reinigt?

Finden Sie die RAM-Größe in Linux