Wie kann ich den Dateicache unter Windows Server 2008R2 einschränken oder sogar deaktivieren?

9

Es gibt eine Maschine mit einem sehr schnellen RAID-Array und einer schnellen Internetverbindung. Aber es hat nur 8 GB Mem, was sehr schnell ausgeht , wenn der Upload steigt.

Irgendwelche Ideen, wie ich den Cache deaktivieren oder einschränken könnte?
(Ich habe versucht, den Schreibcache im Geräte-Manager zu deaktivieren. Aber das ist nur ein Schreibcache, und es hat nicht geholfen.)

Apache
quelle
Irgendein Zusammenhang dazu? superuser.com/questions/415140/…
Der Hochstapler
@OliverSalzburg Leider ist es jetzt nicht in Bereitschaft. Standby ist großartig und sollte immer eingeschaltet sein. Es ist ein gutes Zeug. Aber jetzt wird dieser RAM aus irgendeinem Grund als "Aktiv" verwendet. (Ich benutze uTorrent, um die Geschwindigkeiten zu testen, und bei einer schnellen Übertragung beginnt dies.)
Apache

Antworten:

4

Der springende Punkt des Cache ist , dass es verwendet nicht verwendeten RAM und gibt es, sobald eine Anwendung mehr verlangt. Daher möchten Sie die Größe nicht einschränken, da sonst der freie RAM vollständig verschwendet wird.

psusi
quelle
9
Bitte teilen Sie dies meinem Windows 7 mit, das alle Programme ausgetauscht hat, um eine Videodatei beim Codieren in den Cache zu kopieren - eine Datei, die genau einmal gelesen wird - und die gesamte Box zum Absturz gebracht hat.
Jan Schejbal
Dies kann von der Option LargeSystemCache abhängen. Aus irgendeinem Grund hatte ich es eingestellt (wahrscheinlich aus der Zeit, als der RAM, den ich hatte, für alles, was ich tat, mehr als ausreichend war).
Jan Schejbal
@ JanSchejbal, das ist die Einstellung, an die ich mich nicht mehr erinnern konnte, weil ich vor einigen Jahren auf Windows verzichtet habe. Normalerweise versucht der Kernel, Seiten aus Prozessen auszutauschen, die seit einiger Zeit inaktiv sind, da dieser Speicher besser für die Verwendung von Caching-Dateien für aktive Prozesse verwendet werden kann. Diese Einstellung macht es aggressiver.
Psusi
@JanSchejbal Der LargeSystemCache-Registrierungsschlüssel wird laut blogs.technet.com/b/askperf/archive/2008/02/01/…
BeowulfNode42
3

Sie müssen die System-API SetSystemFileCacheSize () aufrufen.
Dokumentiert hier: http://msdn.microsoft.com/en-us/library/aa965240.aspx

Einige GUI-Programme erlauben dies: http://technet.microsoft.com/en-us/sysinternals/bb897561
Möglicherweise bevorzugen Sie jedoch die CLI, um sie beim Systemstart automatisch auszuführen: http://www.uwe-sieber.de/ntcacheset_e .html (siehe in der Mitte der Seite, es funktioniert für 2k8)

Oder schreiben Sie einfach ein Powershell-Skript mit dem Namen SetSystemFileCacheSize ()

Es wird dringend davon abgeraten, den Cache für die Verwendung in der Produktion zu deaktivieren.
Es ist häufig, die Cache-Größe für virtualisierte Maschinen auf einen kleinen Wert zu beschränken, nicht zu deaktivieren.

Gregory MOUSSAT
quelle
hmm ... so weit, so gut! Ich melde mich bald wieder.
Apache
Das ist komisch. Ich habe die Arbeitsgröße MAXIMUM auf 1 Gigabyte eingestellt und es schafft es einfach durch. Es wird viel höher gehen, es kümmert sich nicht um den Wert oder das Limit. Warum?
Apache
Sie müssen sicher sein, den richtigen Wert zu überwachen. Verwenden Sie dazu das Cacheset-Dienstprogramm.
Gregory MOUSSAT
2

Dieses Problem ist auch unter Windows Server 2008 R2 in unserem Unternehmen aufgetreten. In unserem Fall blieb die Maschine total hängen. Es scheint ein Fehler auf dieser Serverversion von Windows zu sein, da er weder auf meinem viel kleineren Windows 7-Computer unter VirtualBox noch unter Linux unter den gleichen Umständen aufgetreten ist.

Sie können den Cache mit einer API auf ein bestimmtes Limit setzen, wie andere bereits veröffentlicht haben. Sie können jedoch Anwendungen finden, die ihn direkt verwenden, z. B. SetSystemFileCacheSize.exe oder NT Cache Setter .

Der Nachteil ist, dass Sie den Cache nach jedem Neustart festlegen müssen. Sie können damit auch den gesamten Cache auf einmal leeren.

Wir haben den Dateicache auf unserer VM mit 14 GB RAM auf 4 GB eingestellt und es funktioniert. Auch Flush funktioniert gut und Sie können es direkt im Task-Manager sehen.

Beispiele für Befehlszeilen:

  • Zeigen Sie die aktuellen Windows-Einstellungen an:

    SetSystemFileCacheSize.exe
    
  • Zeig Hilfe:

    SetSystemFileCacheSize.exe /?
    
  • Stellen Sie die minimale Größe auf 8 MB und die maximale Größe auf 128 MB ein:

    SetSystemFileCacheSize.exe 8 128
    
  • Deaktivieren Sie die minimale Größe und setzen Sie die maximale Größe auf 128 MB:

    SetSystemFileCacheSize.exe off 128
    
  • Minimale und maximale Größe deaktivieren:

    SetSystemFileCacheSize.exe off off
    
  • Leeren Sie den Datei-Cache:

    SetSystemFileCacheSize.exe flush
    

Hinweis: Das Tool muss mit Administratorrechten gestartet werden.

Josef Klotzner
quelle
0

Um den Dateicache einzuschränken, stellen Sie sicher, dass die maximale Option für die Dateifreigabeleistung nicht aktiviert ist, und Sie können die minimale Menge an Speicherdateicache angeben, indem Sie den verwendeten Speicher minimieren oder Balance auswählen.

Um die aktuelle Konfiguration zu überprüfen, gehen Sie zu: Start-> Systemsteuerung-> Netzwerkverbindungen-> LAN-Verbindung-> Auf der Registerkarte Allgemein unter Eigenschaften-> Datei und Drucker auswählen-> Eigenschaften. Wenn die Option Maximieren auswählen ausgewählt ist, wählen Sie jede andere Option.

user630653
quelle
Die Eigenschaftenoption ist für die Drucker- und Dateifreigabe nicht verfügbar. :) Wie auch immer, es ist ausgeschaltet, der Cache ist es. In Rammap wird jedoch jede einzelne Datei in die Dateiliste aufgenommen, und der aktive Speicher wächst ständig.
Apache