Jak mogę znaleźć, co pochłania całą pamięć mojego systemu? (nie SuperFetch)


62

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ć):

Wydruk Monitora zasobów

UWAGA:

  1. Ponieważ moim głównym dyskiem systemu operacyjnego jest dysk SSD, funkcja SuperFetch jest wyłączona w moim systemie.
  2. 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).
  3. 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?)

4
po prostu sidenote: używana pamięć RAM sama w sobie nie jest złą rzeczą. sprytne buforowanie rzeczy często przyspiesza. jeśli nie masz problemu takiego jak „omg, program xyz uruchamia się tak wolno, że ledwo mogę go znieść, ponieważ musi wyrzucić inne elementy z pamięci RAM”… to może nie być w ogóle problem.
akira


Dzięki, ale ponieważ SuperFetch jest wyłączony w moim systemie (z głównym dyskiem SSD OS), pytanie jest inne. Aktualizowanie oryginalnego pytania.
Coldblackice,

@Coldblackice Tylko dlatego, że jedna (nieakceptowana) odpowiedź nie pomaga, nie oznacza, że ​​nie jest to to samo pytanie. OP drugiego pytania powiedział nawet, że zmiana SuperFetch nie pomogła. :)
Ƭᴇcʜιᴇ007

To prawda, ale w tym przypadku nie jest to prawidłowa odpowiedź, wymagająca kolejnego pytania. Pytanie zaktualizowane w celu odzwierciedlenia tego konkretnego.
Coldblackice

Odpowiedzi:


58

Zazwyczaj można uzyskać lepszy wgląd w to, co zajmuje pamięć, za pomocą narzędzi takich jak RamMap .

wprowadź opis zdjęcia tutajKliknij, 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.

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).

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 ).

wprowadź opis zdjęcia tutaj

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.

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 pojemności 1 GB?)

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ć.


1
Ach, rozumiem. Tak, wykorzystanie pamięci „fantomowej” wydaje się pochodzić z kategorii Plik odwzorowany (a konkretnie z kolumny Tryb gotowości). Więc Menedżer zadań nie zgłasza mapowania tych plików, a jedynie to, że używana jest pamięć?
Coldblackice

2
Dziękuję za pomoc i uzupełnienie. Jeśli chodzi o twoją notatkę o pliku stronicowania i dyskach SSD - słyszałem dokładnie odwrotnie (i dlatego mam to tak, jak jest). Nie twierdzę, że w jakikolwiek sposób mam ostateczne „prawo”, ale przeczytałem, że plik stronicowania jest -najlepszy na dysku SSD ze względu na zalety prędkości dysku. A jeśli chodzi o degradację życia dysku SSD, słyszałem, że jest to nieistotne, o ile plik stronicowania jest ograniczony.
Coldblackice

1
Jeśli chodzi o pozwolenie Windowsowi zarządzać nim - Windows chce pozwolić, aby mój plik stronicowania powiększył się do 18 GB! Niestety nie stać mnie na tyle miejsca na dysku SSD na potrzeby stronicowania. Przypuszczałem, że 12 GB pamięci będzie więcej niż wystarczające do pracy z systemem Windows, która, co dziwne, Windows wydaje się szybko zużywać tyle, ile jest w stanie, najwyraźniej buforując wszystko, co tylko może dostać :) Dlatego obawiam się, że jeśli pozwolę mu mieć tak duży plik strony, jak tylko zechce, znajdzie wystarczająco dużo plików, aby zamapować w pamięci, aby szybko połączyć się z zapełnianiem pliku strony w całości.
Coldblackice

1
@Coldblackice: Przepraszam, że cię nie przekonałem. Odrzuć tylko jedną rzecz, jest bardzo mało osób, które dobrze rozumieją zarządzanie pamięcią systemu Windows. Jednak wiele osób szybko oferuje rekomendacje (oczywiście ja też). Zastanów się, czy ograniczenie rozmiaru pliku stronicowania jest przydatne, dlaczego nie jest domyślne? Ponadto jest bardzo mało prawdopodobne, aby plik odwzorowany w pamięci został wypłukany do pliku stronicowania, ponieważ już istnieje w pliku (tym, który został zamapowany do pamięci). Zatem twój strach w tym względzie jest prawdopodobnie niewłaściwy.
Der Hochstapler

1
@Oliver Salzburg, należy pamiętać, że system Windows 7 został zaprojektowany do wirowania rdzy, a nie dysków SSD i 1-4 GB pamięci RAM, a nie 12. To nie jest ewangelia, powinno być oczywiste, że są chwile, kiedy jeden rozmiar nie pasują do wszystkich ustawień domyślnych, a rozwiązaniem nie jest ciągłe opowiadanie się za tym, aby o tym nie myśleć i nigdy nie dotykać tych ustawień domyślnych bez względu na to, kiedy ktoś chce głębiej zrozumieć problem. W porządku dla noobów, ale nie dla wszystkich.
SilverbackNet

2

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.


0

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).


Jak zwiększyć swoją pamięć wirtualną ? A jakie jest uzasadnienie dla czynnika 1,5?
Der Hochstapler,

Podczas gdy zwiększanie pamięci wirtualnej (przez zwiększenie rozmiaru pliku strony) jest cenne, może prowadzić tylko do dużej ilości stronicowania, co spowolni maszynę. Jeśli uniemożliwiono uruchomienie wszystkich niepotrzebnych programów, najlepiej zainstalować więcej pamięci RAM.
Fran

Aby zwiększyć pamięć wirtualną, postępuj zgodnie ze ścieżką: Przejdź do właściwości MOJEGO KOMPUTERA -> wybierz „Zaawansowane ustawienia systemu” -> przejdź do zakładki „zaawansowane” -> wybierz „ustawienia” w sekcji WYDAJNOŚĆ -> przejdź do zakładki zaawansowane -> w pamięci wirtualnej Wybierz Zmień-> Wybierz rozmiar niestandardowy, aby podać min. i max. rozmiar ...... Zaleca się zwiększenie pamięci wirtualnej do 1,5x pamięci fizycznej (np. jeśli masz 4 GB pamięci RAM, możesz przypisać do 6 GB pamięci wirtualnej). Ale sugestia FRAN jest również poprawna. Spróbuj zminimalizować niepotrzebną aplikację działającą w tle.
tiki

Czy zatem udowodniono, że ogólnie lepiej jest zwiększyć lub zmniejszyć plik strony, jeśli chodzi o surową, ogólną wydajność? Czy 1,5x jest naprawdę konieczne?
Coldblackice,

0

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.


1
Czy jesteś powiązany z tym oprogramowaniem? Ostatni akapit brzmi, jakby marketing mówił do mnie i widzę, że polecasz to samo na 2 starych postach.
Arjan

1
Tak, pomogłem autorowi programu ulepszyć program. Ale nie mam (finansowych) powodów do promowania programu, ponieważ program jest bezpłatny.
Willy2

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.