Mein Arbeitscomputer (Windows 7 64-Bit) verbringt viel Zeit damit, den Speicher auszutauschen, wenn ich zwischen Programmen wechsle. Dies überrascht mich, da ich 4 GB RAM habe und die von mir verwendeten Programme nicht besonders RAM-hungrig sind (Outlook, Emacs, p4win, Firefox, verschiedene Build-Tools). Ich habe RAMMap heruntergeladen und es zeigt über ein Gigabyte Speicher, der von "Metafile" verwendet wird.
Aus dem Sysinternals-Blog :
Die Metadatei ist Teil des Systemcaches und besteht aus NTFS-Metadaten. NTFS-Metadaten umfassen die MFT sowie die anderen verschiedenen NTFS-Metadatendateien. ... In der MFT benötigt jeder Dateiattributdatensatz 1 KB und jede Datei hat mindestens einen Attributdatensatz. Fügen Sie dazu die anderen NTFS-Metadatendateien hinzu, und Sie können sehen, warum die Kategorie Metadatei auf Servern mit vielen Dateien sehr groß werden kann.
Ich verstehe also, was die "Metafile" -Daten sind ... Ich arbeite an großen Builds mit Hunderttausenden von Dateien (keine ist so groß, aber sie summieren sich auf mehrere Gigabyte). Meine Frage ist, wie ich den von "Metafile" verwendeten Speicher reduzieren kann. Ich verwende nicht alle diese Dateien gleichzeitig aktiv. Warum muss Windows also Informationen im RAM speichern? Es ist wirklich ärgerlich, meinen Computer jedes Mal neu zu starten, wenn ich einen neuen Build synchronisiere.
Antworten:
Ich glaube, dass der Systemcache seinen Speicher bei Bedarf freigibt, aber es können Störungen auftreten. Nachfolgend sind einige Möglichkeiten aufgeführt.
Ihr 64-Bit-System reserviert den Videospeicher in den ersten 4 GB Speicher. Wenn Ihre Grafikkarte über viel Speicher verfügt, geht dieser Speicher verloren, wie in beschrieben:
Der verwendbare Speicher ist möglicherweise geringer als der auf Windows 7-basierten Computern installierte Speicher
Sie können die Speichernutzung auf dem Computer überprüfen, indem Sie den Geräte-Manager öffnen und im Menü Ansicht die Option "Ressourcen nach Verbindung" auswählen. Erweitern Sie den Speicherknoten und prüfen Sie, ob Sie herausfinden können, was den Speicher belegt, wenn überhaupt. In einigen Fällen kann der Speicher erhöht werden, indem nicht verwendete Geräte wie Firewire deaktiviert werden.
Sie können auch versuchen, genau das Gegenteil von dem zu tun, was in diesem Artikel beschrieben wird:
Erhöhen Sie die Größe des Dateisystem-Speichercaches in Windows 7
Sie können auch versuchen, Windows 7 SuperFetch zu deaktivieren .
Wenn nichts hilft, ist es hilfreich, einen Screenshot der Registerkarte Task-Manager mit dem Namen Leistung zu veröffentlichen.
quelle
In Windows Server 2008 R2 tritt genau das gleiche Problem mit dem "Cache" der Metadatei auf, dass zu viele Metadatei-Informationen im aktiven Speicher gespeichert werden. Daher haben die Cache-Funktionen keine Berechtigung, die Freigabe dieses Speichers bei Speicherdruck zuzulassen.
Ich habe ein Powershell-Skript auf der Seite serverfault.com geschrieben. Windows Server 2008 R2-RAM-Auslastung für Metadateien , mit dem der maximale aktive Speicher für Metadateien auf einen vernünftigen Wert festgelegt wird . Der Rest wird in den Standby-Speicher verschoben, und die normalen Cache-Funktionen können dann die Dinge entsprechend priorisieren. Windows 7 x64 und Server 2008 R2 x64 haben beide standardmäßig maximale maximale Speichergrenzen für Metadateidaten von 1 TB. Ja TB, nicht GB.
Work führt dieses Skript jetzt an allen unseren Standorten auf unseren Servern aus, die die Sicherungen der Website organisieren, die während des Sicherungszyklus täglich Millionen von Dateien verarbeiten. Auf diesen Sicherungsservern wird auch ein speicherintensives Java-Programm (VMware vSphere), 2 SQL-Server und WSUS mit einem eigenen SQL-Server ausgeführt. Wenn die Sicherungssoftware zuerst die Metadaten (Name, Größe, Änderungsdatum, Berechtigungen, Attribute usw.) liest, um die Liste der Dateien zu ermitteln, die in diesem Durchgang gesichert werden sollen, wird der Metadatei-Cache SEHR schnell gefüllt. Selbst wenn sie alles tun, fahren sie gut mit nur 4 GB RAM.
quelle