Mój komputer służbowy (Windows 7 64-bit) spędza dużo czasu na wymianie pamięci podczas przełączania programów. Zaskakuje mnie to, ponieważ mam 4 GB pamięci RAM, a programy, których używam, nie są szczególnie głodne pamięci RAM (Outlook, Emacs, p4win, Firefox, różne narzędzia do budowania). Pobrałem RAMMap , i to widać na gigabajt pamięci używanej przez „Metafile”.
Metaplik jest częścią pamięci podręcznej systemu i składa się z metadanych NTFS. Metadane NTFS obejmują MFT, a także inne różne pliki metadanych NTFS. ... W MFT każdy rekord atrybutu pliku zajmuje 1k, a każdy plik ma co najmniej jeden rekord atrybutu. Dodaj do tego inne pliki metadanych NTFS, a zobaczysz, dlaczego kategoria Metaplików może rosnąć dość duża na serwerach z dużą ilością plików.
Rozumiem więc, czym są dane „Metapliku” ... Pracuję na dużych kompilacjach zawierających setki tysięcy plików (żaden nie jest taki duży, ale sumują się do kilku gigabajtów). Moje pytanie brzmi: jak mogę zmniejszyć ilość pamięci używanej przez „Metafile”? Nie używam wszystkich tych plików jednocześnie, więc dlaczego system Windows musi przechowywać informacje w pamięci RAM? Ponowne uruchamianie komputera za każdym razem, gdy synchronizuję nową kompilację, jest naprawdę denerwujące.
Odpowiedzi:
Uważam, że pamięć podręczna systemu zwalnia pamięć w razie potrzeby, ale mogą się zdarzyć usterki. Poniżej wymieniono niektóre możliwości.
Twój 64-bitowy system przydziela pamięć wideo w pierwszych 4 GB pamięci. Jeśli więc karta wideo ma dużo pamięci, pamięć ta jest tracona, jak opisano w:
Pamięć użyteczna może być mniejsza niż pamięć zainstalowana na komputerach z systemem Windows 7
Możesz sprawdzić użycie pamięci na komputerze, otwierając Menedżera urządzeń i pod menu Widok wybierz „Zasoby według połączenia”. Rozwiń węzeł Pamięć i sprawdź, czy możesz dowiedzieć się, co zajmuje pamięć. W niektórych przypadkach pamięć można zwiększyć, wyłączając nieużywane urządzenia, takie jak firewire.
Możesz także spróbować wykonać dokładnie odwrotność tego, co opisano w tym artykule:
Zwiększ rozmiar pamięci podręcznej pamięci systemu plików w systemie Windows 7
Możesz także spróbować wyłączyć Windows 7 SuperFetch .
Jeśli nic nie pomoże, warto opublikować zrzut ekranu karty Menedżer zadań o nazwie Wydajność.
źródło
W systemie Windows Server 2008 R2 występuje dokładnie ten sam problem z pamięcią podręczną metapliku, że zbyt dużo informacji o metapliku jest przechowywanych w aktywnej pamięci, więc funkcje pamięci podręcznej nie mają uprawnień do zezwolenia na zwolnienie tej pamięci, gdy występuje presja pamięci.
Napisałem skrypt PowerShell na stronie serverfault.com Wykorzystanie pamięci RAM metapliku systemu Windows Server 2008 R2, które ustawia maksymalną aktywną pamięć metapliku na coś rozsądnego. Reszta jest przenoszona do pamięci rezerwowej, a normalne funkcje pamięci podręcznej są w stanie odpowiednio priorytetyzować rzeczy. Zarówno Windows 7 x64, jak i Server 2008 R2 x64 mają domyślne maksymalne limity aktywnej pamięci dla danych metapliku 1 TB. Tak TB, nie GB.
Obecnie praca uruchamia ten skrypt we wszystkich naszych witrynach na naszych serwerach, które organizują kopie zapasowe witryny, które każdego dnia zajmują się milionami plików podczas cyklu tworzenia kopii zapasowych. Na tych serwerach kopii zapasowych działa także program Java Java (VMware vSphere), 2 serwery SQL i WSUS z własnym serwerem SQL. Dzięki oprogramowaniu do tworzenia kopii zapasowych najpierw odczytuje metadane (nazwa, rozmiar, data modyfikacji, uprawnienia, atrybuty itp.) W celu ustalenia listy plików, które zostaną utworzone w kopii zapasowej, BARDZO szybko zapełnia pamięć podręczną metapliku. Nawet robiąc wszystko, co ładnie płyną, tylko z 4 GB pamięci RAM.
źródło