Wiele osób uczy się, jak działa buforowanie Menedżera pamięci Windows, czytając oficjalne dokumenty Microsoft itp. Istnieje jednak stosunkowo niewiele dokumentów opisujących rzeczywiste problemy z wydajnością (powolność) związane z bardzo dużymi / rosnącymi mapowanymi plikami i listami rezerwowymi.
Mam komputer PC Win7 64bit (8 Gb RAM), który działa jak serwer. Nie mogę dodać do tego więcej pamięci. Ma kilka tunerów telewizyjnych, które nagrywają / zapisują jednocześnie kilka gigantycznych plików MPEG2 (co najmniej 3-8 GB każdy) na HDD 24/7. W zależności od tego, jak zajęty jest mój komputer nagrywaniem programów telewizyjnych, po 1-3 dniach mój komputer staje się powolny.
Patrząc tylko na Menedżera zadań Windows, wydaje się, że nie mam otwartych zbyt wielu dużych aplikacji; i mnóstwo „dostępnej pamięci”. Nawet jeśli zamknę wszystkie aktywne procesy, komputer pozostanie powolny. Jednak podczas korzystania z RamMap widzę, że te duże pliki MPEG2 stają się plikami mapowanymi na aktywnej liście rezerwowej; co z czasem sprawia, że mój komputer jest bardzo powolny. Jeśli wybiorę opcję „Opróżnij listę rezerwową” w RamMap, mój komputer natychmiast staje się wyjątkowo elastyczny; jakbym właśnie to zrestartował. Nic więcej nie mogę zrobić, aby rozwiązać problem ospałości. W rzeczywistości komputer nigdy nie wyjdzie z tej powolności, chyba że opróżnię listę rezerwową lub zrestartuję komputer.
Mam narzędzie wiersza polecenia, EmptyStandbyList.exe, które, jak się okazało, cicho czyści listę rezerwową, zamiast robić to w GUI RamMap. Jednak niestety usuwa również z listy rezerwowej mniejsze elementy, które są bardzo przydatne do celów wydajnościowych, aby pozostać na liście rezerwowej.
Podczas wyszukiwania w Google znalazłem inne osoby, które mają prawie taki sam dokładny problem jak ja. Jednak większość ich pytań pozostaje bez odpowiedzi; bez prawdziwego wyjaśnienia, dlaczego tak się dzieje; i nie ma ostatecznego sposobu rozwiązania problemu poza techniką „Opróżnij listę rezerwową”.
Widziałem wzmianki o narzędziu / usłudze MS o nazwie „Dynamic Cache”; ale nie jestem pewien, czy leczy konkretnie to, czego chcę. Ponadto wydaje się, że wersja Win7 / Win2008 R2 jest dostępna tylko za pośrednictwem wsparcia MS. Widziałem także kilka narzędzi, które ustawiają „min / max limity pamięci podręcznej NT”; ale wyglądają, jakby były specyficzne dla zestawów roboczych dla procesów, a nie dla list rezerwowych.
Mam nadzieję, że ktoś, kto potrafi myśleć nieszablonowo, może wymyślić dla mnie bardziej wdzięczne lekarstwo zamiast tego, że muszę regularnie brutalnie opróżniać całą listę rezerwową; i, miejmy nadzieję, mieć ostateczne wyjaśnienie objawu, który widzę ja (i inni ludzie). Powodem, dla którego wspomniałem o „nieszablonowym” jest to, że jest już wiele osób, które lubią po prostu recytować, w jaki sposób mapowane pliki i priorytety listy rezerwowej „powinny” działać na papierze; co nie jest dla mnie bardzo pomocne.
źródło
Odpowiedzi:
Lista rezerwowa to pamięć podręczna Superfetch, a „pamięć podręczna dynamiczna” rozwiązuje inny problem. Usługa rozwiązuje problem polegający na tym, że pamięć podręczna metadanych NTFS jest zbyt wysoka. Ale Stadnbylist i ta pamięć podręczna to 2 różne rzeczy. Pamięć podręczna NTFS jest wyświetlana jako używana pamięć, natomiast pamięć podręczna w trybie gotowości zawiera dane, ale można ją bardzo szybko opróżnić, jeśli naprawdę nowa pamięć jest przechowywana w niej.
Na forum sysinternals użytkownik wj32, autor Process Hacker, stworzył narzędzie wiersza poleceń, które robi to, co chcesz:
http://forum.sysinternals.com/rammap-empty-standby-list_topic27297_post132769.html#132769
Wypróbuj, jeśli to „naprawi” problem.
źródło
Możliwe, że powolność pochodzi z systemu Windows wymuszającego ładowanie / zapisywanie rzeczy z dysku Swap, że z każdym nagranym filmem lista rezerwowa rośnie i przy dużym dysku Swap inne programy (w tle) są teraz wypychane na dysk Swap, spowolnienie maszyny.
Jeśli ten komputer jest używany tylko do nagrywania programów telewizyjnych, być może rozwiązaniem byłoby ustawienie dysku Swap na tak mały, jak pozwala Windows, aby go ustawić, czyli 16 MB. Nie wyłączaj dysku Swap całkowicie, ponieważ wtedy system Windows utworzy dysk Swap w tajemnicy.
Niektórzy nie potrafią sobie wyobrazić, że Windows byłby powolny, gdyby tylko odczytywał dane z pamięci RAM, podczas gdy żadne nowe programy nie są ładowane z dysku.
Qoute z dokumentu MS http://download.microsoft.com/download/7/E/7/7E7662CF-CBEA-470B-A97E-CE7CE0D98DC2/MemorySizingGuidanceWin7.docx :
„System Windows 7 SuperFetch ™ współpracuje z menedżerem pamięci w celu ustawienia priorytetów stron na liście w trybie gotowości. Strony, które niedawno zostały umieszczone na liście w trybie gotowości, zaczynają się od wysokiego priorytetu, który powoli maleje z czasem.
Jeśli system ma zbyt mało pamięci, aby poradzić sobie z obciążeniem, tylko niewielki procent stron na liście w trybie gotowości ma niski priorytet. Monitorując liczbę stron o różnych priorytetach, możesz ustalić, czy system skorzystałby na zwiększeniu ilości zainstalowanej pamięci RAM. ”
Ogólnie rzecz biorąc, celem jest zapewnienie, aby system mógł utrzymywać ostatnio odwoływane strony w pamięci i nadal mieć wystarczającą ilość dostępnej pamięci, aby zaspokoić wszelkie natychmiastowe potrzeby pamięci ”.
Być może również program do nagrywania TV, ponieważ działa i nie przestaje, ma każdą stronę, która przechodzi na listę gotowości, oznaczoną jako najwyższy priorytet wypychania innych rzeczy, które normalnie przyspieszyłyby system Windows. Można by pomyśleć, że te rzeczy są uwalniane, gdy kończy się pamięć i / lub gdy nie ma pliku wymiany, którego system Windows nie może potajemnie zacząć intensywnie używać dysku wymiany, co spowalnia działanie. Zakłada się, że dane z listy rezerwowej nie zostaną załadowane na dysk wymiany.
źródło