Fehlender Speicher unter Windows Server 2008


7

Ich habe einen Windows 2008 x64-Server mit 8 GB RAM installiert.

Der Task-Manager und der Ressourcenmonitor bestehen beide darauf, dass 7,5 GB RAM verwendet werden. Die Speicherliste unter Prozesse (Private Speicherbytes) wird jedoch nicht addiert. Ich habe Show-Prozesse von allen Benutzern überprüft und die Zahlen, die mir mit etwa 3,5 GB RAM einfallen, von Hand hinzugefügt.

Ich habe mir auch die neueste Version von SysInternals Process Explorer angesehen. Weder die privaten Bytes noch der Arbeitssatz umfassen mehr als etwa 3,5 GB RAM.

Was ist los?

=====

Update : Ich habe den Server zurückgeschickt, um zu sehen, was mit der Speichernutzung passieren würde. Nach dem Start und dem regulären Betrieb lag die RAM-Auslastung bei 3 GB. 18 Stunden später sind wieder bis zu 6,8 GB verfügbar, ohne dass angegeben wird, wo die zusätzlichen 3,5 GB RAM verwendet werden.

Hier sind Links zu Screenshots des Ressourcenmonitors und des Task-Managers:

Ressourcenmonitor

Taskmanager

Update 2 : Nun, ich glaube, ich habe das Problem gefunden. Als ich eine der größeren Datenbanken von meinem SQL Server trennte, sank die Menge des als "in Verwendung" angezeigten RAM drastisch. Die Anzahl der privaten Speicherbytes wurde kaum verschoben. Ich vermute also, dass SQL Server eine Möglichkeit hat, Speicher zuzuweisen, wo er auf keinem der Monitore wirklich angezeigt wird.

Ich ging weiter und erstellte eine neue Datenbankdatei, dann übertrug ich alle Daten von der, die ich getrennt hatte. Obwohl dieselben Daten und dieselben Transaktionen ausgeführt werden, ist der verwendete Speicher niedrig geblieben. Vielleicht gab es eine Korruption in der DB? Ich überlasse es den DB-Göttern und suche nach einem anderen "Problem";)

Antworten:


7

Ich habe heute diesen Artikel gefunden, in dem gesperrte Seiten, AWE und 64-Bit-Systeme ausführlich behandelt werden. http://blogs.msdn.com/psssql/archive/2009/09/11/fun-with-locked-pages-awe-task-manager-and-the-working-set.aspx

Einer der Aufzählungspunkte (Nr. 3) ist der Titel "Warum zeigt der Task-Manager nicht den gesamten für SQL Server zugewiesenen Speicher an?"

Das ist eine sehr schöne Erklärung. Am Ende wird dies nicht angezeigt, weil der SQL Server diese Seiten im Speicher "gesperrt" hat. Gesperrte Seiten sind NICHT Teil des Arbeitssatzes, daher werden sie nicht im Task-Manager oder sogar als Teil des Anwendungsspeichersatzes angezeigt.

Wenn Sie ausführen select * from sys.dm_os_process_memory, wird das Feldlocked_page_allocations_kb angezeigt, in dem angegeben ist, wie viel RAM-SQL-Server auf diesen Seiten zugewiesen wurde.


1

Der Task-Manager verfügt über eine Speicherleiste / Grafik unterhalb der CPU-Leiste / Grafik. Dies ist die Menge, die von Anwendungen verwendet wird.

Die Summe aus dem in dieser Grafik angegebenen Betrag und dem als "Verfügbar" angegebenen Betrag sollte Ihrer Gesamtsumme von 8 GB entsprechen.

"Verfügbar" ist mehr als "Kostenlos", da "Zwischengespeichert" in "Verfügbar" enthalten ist.


Ja. Das Problem ist, dass das Addieren des gesamten von den Anwendungen verwendeten Speichers nicht einmal der Hälfte des verwendeten Arbeitsspeichers entspricht. Ich versuche herauszufinden, was dieses versteckte Ding ist, das mehrere GB RAM verschluckt hat.
NotMe

Ja, ich denke, Graeme sagt, dass Ihr Festplatten-Cache den Rest verwendet. Mach dir keine Sorgen. Es wird es bei Bedarf zurückgeben.
James Risto

Können Sie einen Screenshot der Registerkarte Leistung des Task-Managers veröffentlichen?
ThatGraemeGuy

1

Ich habe ein ähnliches Problem. Kam über diesen Technet-Artikel - 907877. Versuchen Sie, den SQL-Befehl DBCC MEMORYSTATUS zu verwenden, und überprüfen Sie, ob der von AWE zugewiesene Eintrag Ihrem fehlenden Speicher entspricht.


support.microsoft.com/kb/907877 erwähnt "Hinweis: Leistungsmonitor (PerfMon) und Task-Manager berücksichtigen den Speicher nicht korrekt, wenn die Unterstützung für Adressfenster-Erweiterungen (AWE) aktiviert ist."
pplrppl

Es ist ein x64-Server, daher gilt AWE nicht. Es ist ein Noop in 64 Bit.
NotMe

0

Sie teilen höchstwahrscheinlich RAM mit Ihrer Grafikkarte. Überprüfen Sie Ihre BIOS-Einstellungen.

Also keine Ahnung. Einige Vorschläge hier sind, die Speichermodule zu testen.


3
3,5 GB für eine Grafikkarte freigegeben ... auf einem Server? Unwahrscheinlich.
Izzy

Es ist ein kopfloser Dell Server ...
NotMe

Ich sollte auch erwähnen, dass das Abprallen der Maschine alles wieder normal macht. Aber das ist keine gute Lösung, ich muss wissen, wohin es geht.
NotMe

0

Welche Anwendungen führen Sie aus? Könnte es sein, dass Sie eine Entwicklungs-App oder ein Softwarepaket eines Drittanbieters mit Speicherlecks ausführen?


Möglich. Wie kann ich herausfinden, welche App der Schuldige ist? Die Liste enthält SQL 2005 SP3, Sharepoint 2007 und den unter IIS ausgeführten Webdienst ac #. Ich glaube nicht, dass es sich um den Webdienst handelt, da er auf anderen Computern ohne Speicherprobleme ausgeführt wird.
NotMe
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.