Jak zdiagnozować / wykryć problemy związane z pamięcią, jeśli Menedżer zadań wydaje się nie zgłaszać poprawnie?
Muszę mieć przeciek pamięci lub coś w tym stylu - w 75% wykorzystuję moje 12 GB pamięci, ale lista menedżerów zadań zużycia pamięci procesów się nie sumuje (tak, „Pokaż procesy od wszystkich użytkowników” jest zaznaczone ).
Wygląda na to, że zużycie pamięci „fantomowej” rośnie w zależności od czasu działania systemu. Pokazuje, że istnieje 118 procesów ogółem. Oprócz pierwszej piątki wszystkie mają mniej niż 50 MB.
Najważniejszym procesem jest Firefox, który używa 2,6 GB. Adobe Premiere w 900 MB. Kontener wtyczek o pojemności 300 MB. Pale Moon przy 275 MB. Explorer.exe przy 94 MB.
Jak na świecie mogę znaleźć to, co zajmuje resztę pamięci? Wygląda na to, że Menedżer zadań nie widzi wszystkiego, co jest używane. Może jest jakiś wyciek pamięci? Czy programy nie zwalniają prawidłowo używanej pamięci?
Raporty Monitora zasobów (kliknij, aby powiększyć):
UWAGA:
- Ponieważ moim głównym dyskiem systemu operacyjnego jest dysk SSD, funkcja SuperFetch jest wyłączona w moim systemie.
- Rozumiem zasadę, że nieużywany baran jest „zmarnowanym” baranem, że tak powiem. Jednak gdy widzę, że moje użycie pamięci prawie przyzwyczaiło się do maksymalnego wykorzystania pojemności, powstrzymuje mnie to od uruchamiania / ładowania kolejnych programów (z mojego własnego zainteresowania), a nawet wysyła mnie do zadania zamknięcia wielu (z niewielkim wpływem na zmniejszenie zużycia pamięci, przynajmniej zauważalnie i w krótkim czasie).
- Kiedy pamięć się zapełnia, nie cierpię patrzeć, jak plik strony 1 GB na moim dysku SSD rozszerza się do ustawionego limitu 6 GB, a ja „pocę się”, wiedząc, że mój „słaby” dysk SSD prawdopodobnie zostanie zmiażdżony jak Windows / gwałtownie zmienia się w używanie go jako pełnoprawnej karty pamięci. (Czy w tej notatce powinienem po prostu mocno ograniczyć plik strony do statycznego 1 GB?)
źródło
Odpowiedzi:
Zazwyczaj można uzyskać lepszy wgląd w to, co zajmuje pamięć, za pomocą narzędzi takich jak RamMap .
Kliknij, aby powiększyć
Często pamięć może być wykorzystana przez pliki mapowane na pamięć, które zostały wciągnięte do pamięci RAM w celu zwiększenia wydajności.
Zapoznanie się z aktywnej kolumny RamMap. To jest pamięć, która jest aktualnie używana. Wskaźniki dotyczące wolnej pamięci mogą często wprowadzać w błąd. Obejmuje to narzędzia Windows, takie jak Menedżer zadań.
Dalsza informacja
Chciałem również odnieść się do kilku dodatkowych kwestii z twojego pytania.
Twoje rozumowanie jest całkowicie w porządku. Ale, chyba że masz problemy z powodu małej ilości pamięci, powinieneś powstrzymać się od tej praktyki. System operacyjny powinien obsłużyć to zadanie i wyrzucić dane do pliku stronicowania, gdy wymagana jest pamięć fizyczna.
Być może używasz również niewłaściwego wskaźnika do swojej praktyki. Chcesz mieć oko na swoją Commit Charge ( terminologia Process Explorer ).
Opłata zatwierdzenia jest sumą całej wykorzystanej pamięci. Możesz zobaczyć na zrzucie ekranu, jest również limit. Limit ten to rozmiar mojej pamięci fizycznej + rozmiar pliku stronicowania. Gdyby ten limit został przekroczony, byłby to problem.
Co prowadzi nas do następnego tematu.
Moim zdaniem jest tu kilka rzeczy nie tak. Ogólnie rzecz biorąc, zdecydowanie nie zaleca się ustawiania limitów rozmiaru pliku stronicowania. Mark Russinovich wyjaśnia to w filmach, które zamieściłem powyżej (znacznie lepiej niż kiedykolwiek mogłem).
Mogą z tego wynikać tylko złe rzeczy. Co powinien zrobić system Windows, gdy musi spłukać do pliku stronicowania więcej niż 6 GB danych, ale przy ograniczeniu do 6 GB? To poważny problem.
Pozwól systemowi Windows zająć się plikiem stronicowania. Jedyną rzeczą, którą zdecydowanie zalecam, jest przeniesienie pliku stronicowania z dysku SSD. Tom Wijsman wyjaśnia to doskonale w swoim wpisie na blogu Maksymalizowanie żywotności dysku SSD , który polecam przeczytać.
źródło
W moim przypadku przyczyną wysokiego zużycia pamięci była maszyna wirtualna hyper-v, dla której włączyłem ustawienia pamięci dynamicznej dla pamięci RAM.
Narzędzie RamMap pomogło mi zlokalizować główną przyczynę.
Po pierwsze zauważyłem w RamMap, że Driver Locked zużył ponad 29 GB z mojej 32 GB pamięci RAM. Potem znalazłem artykuł wyjaśniający, że wysokie zużycie pamięci przez Driver Locked może być spowodowane włączoną pamięcią dynamiczną HyperV, a następnie właśnie to potwierdziłem.
źródło
Jeśli widzisz, że przystawka nie pokazuje całego procesu, a sam pokazany proces zajmuje 5,8 GB pamięci. z pokazanej przystawki pokazuje, że działa wiele niepotrzebnych programów działających w tle. Za pomocą msconfig usuń niepotrzebne programy startowe, a także zwiększ pamięć wirtualną (1,5 razy więcej pamięci fizycznej).
źródło
Możesz wypróbować RAMMAP Sysinternal, ale pokazuje użycie pamięci w inny sposób niż Menedżer zadań i Menedżer zasobów, dlatego nie jest zbyt pomocne.
Menedżer zadań i monitor zasobów nie pokazują pamięci podręcznej plików ani ich rozmiaru. Jest to część „W użyciu” pamięci (patrz Monitor zasobów). Pamięć podręczna plików może wzrosnąć do BARDZO dużego rozmiaru, zwłaszcza gdy komputer działa przez wiele godzin. Z biegiem czasu ogólne zużycie pamięci programu rośnie w wyniku rosnącej pamięci podręcznej plików i wycieków pamięci. Niektóre programy mają po prostu kiepskie zarządzanie pamięcią.
Jednym ze sposobów zminimalizowania zużycia pamięci jest ograniczenie liczby procesów. (Dlaczego 118 procesów działa? Dlaczego masz uruchomionych wiele instancji Explorer.exe?)
Istnieje program, który pomaga regularnie zmniejszać zużycie pamięci i regularnie zwijać pamięć podręczną plików. (PcWinTech's CLEANMEM). Zmniejszenie zużycia pamięci w ten sposób zmniejsza lub nawet eliminuje potrzebę zapisywania przez system Windows danych z pamięci do pliku wymiany (na dysku SSD). Zwiększa to żywotność dysku SSD. Zmniejszenie zużycia pamięci powoduje również udostępnienie większej ilości pamięci „Standby”, umożliwiając systemowi Windows wstępne ładowanie większej liczby plików w pamięci Standby, co przyspiesza działanie systemu.
źródło
RAMMap pokazał, że
C:\Windows\SoftwareDistribution\DataStore\DataStore.edb
zmapowany plik marnuje 400 Mb mojej cennej pamięci RAM 4 Gb.Ponadto Windows Update stale spowalniał system w trakcie aktualizacji tego ogromnego pliku.
To może być powszechny problem w wielu komputerach z niższej półki.
Zobacz, jak PC Boots zapisuje gigantyczny plik datastore.edb, który spowalnia komputer w celu uzyskania możliwej rozdzielczości.
źródło