Wysokie użycie pamięci systemu Windows 8

0

Mój problem wydaje się prosty. Mój komputer zużywa więcej pamięci fizycznej niż jest to uwzględnione w sumie moich programów.

! (Z systemem Windows 8.1, najnowsze łaty)

Jakie okna zgłasza moje całkowite użycie jako

Jakie jest całkowite użycie systemu

Używam 7,5 GB. Całkowite wykorzystanie wynosi 12 GB. Delta ma 4,5 GB. Uważam to za bardzo wysokie.

Większość postów, które znalazłem na tej stronie, dotyczy wycieków pamięci sterowników wpływających na „pulę stronicowaną” i „pulę niestronicowaną”, co powoduje duże wykorzystanie. Jednak moja strona + pula niestronicowana ma około 650 MB, co, jak rozumiem, nie jest znacznie powyżej „normalnego” i nie powinna powodować tej delty 4,5 GB. Aby dalej to zbadać, nawet pobiegłem poolmon.exei nie znalazłem takich nieszczelnych sterowników, kiedy sortowałem według użycia.

Zrzut ekranu Poolmon

Więc moje pytanie brzmi: co daje? Gdzie pamiętasz?

Aktualizacja:

Miły użytkownik skierował mnie do programu rammap, który podaje bardziej szczegółowe opisy alokacji pamięci. Po uruchomieniu odkryłem, że 2 GB pamięci w sekcji „w użyciu” zostało przydzielone na „Pliki zmapowane”, które, jak sądzę, są buforowane na dysku. Po przejściu do zakładki „fizyczne strony” i sortowaniu według wspomnianych plików, dowiedziałem się, że wiele aktywnych mapowanych plików to pliki używane przez aplikację torrentową obsługującą duże pliki danych. Zakończenie aplikacji uwolniło 1,2 GB pamięci podręcznej dysku do trybu gotowości, dając w ten sposób zrzut ekranu, który możesz zobaczyć poniżej.

Rammap

„Delta” spadła do 3,2 GB, co zbliża się do tego, co uważam za normalne, ale wciąż jest na wysokim poziomie, chociaż jeśli odejmiesz pozostałą część „pliku mapowanego” 800 MB, otrzymasz 2.4 GB, co można po prostu wyjaśnić niepoprawną liczbą podaną w polu Użytkownicy w menedżerze zadań.

Mając te informacje, teraz nie jestem tego taki pewien. Czy to tylko ja nie rozumiem rachunkowości pamięci? Czy sekcja „udostępniana” w tabeli jest faktycznie używana przez programy użytkownika i po prostu nie jest uwzględniona w przestrzeni użytkownika w menedżerze zadań? Jeśli tak, to problem byłby mieszanką tego, że nie wiedząc, że buforowanie dysku może liczyć w pamięci „W użyciu” / „Aktywna”, a karta Użytkownika w menedżerze zadań jest niedokładna.

Claire Fey
źródło
Co dokładnie rozumiesz przez „wykorzystanie pamięci systemowej”? Masz na myśli pamięć, która jest używana? Ponadto oznaczyłeś to „wycieki pamięci”. Czy masz jakieś dowody na wyciek? Czy masz rzeczywisty problem, czy po prostu musisz zrozumieć, w jaki sposób system Windows 8 wykorzystuje pamięć?
David Schwartz
@DavidSchwartz Bardzo nie lubię tonu twojego komentarza. Zużycie pamięci systemowej odnosi się do zużycia pamięci, które nie jest uwzględniane przez programy użytkownika. Rzeczywisty problem to podanymi jeden, że wykorzystanie pamięci systemowej jest niezwykle wysoka, wyższa niż Widziałem na innych komputerach z systemem Windows również kopalnia, a także działa na podobnych obciążeń. Czy potrzebuję pomocy w zrozumieniu, w jaki sposób W8 wykorzystuje pamięć? Może? Oświeć mnie, odpowiadając na pytanie informujące mnie, gdzie dokładnie popełniam błąd w moim rozumowaniu, a ja natychmiast zamknę pytanie i zaznaczę odpowiedź jako poprawną.
Claire Fey,
Tak więc - to pytanie zostało podniesione jako możliwy duplikat. Jednak wydaje mi się, że to pytanie jest znacznie lepsze od drugiego i wydaje mi się, że możemy chcieć, aby biegło dalej, zamykamy je w obu kierunkach, szczególnie jeśli pierwotna przyczyna jest inna
Journeyman Geek
@JourneymanGeek dziękuję za edycję mojego postu i ustawienie domyślnego wyświetlania obrazów. Nie wiedziałem, że mogę to zrobić dzięki mojej noobowości;)
Claire Fey
po opublikowaniu zdjęć RAMMap użycie puli jądra jest prawidłowe.
magicandre1981

Odpowiedzi:

0

Windows 8, podobnie jak prawie wszystkie współczesne systemy operacyjne, robi wszystko, aby zużywać jak najwięcej pamięci. Dlaczego? Ponieważ każda niewykorzystana pamięć jest na zawsze marnowana.

Jeśli system ma 8 GB pamięci i używa tylko 7 GB, nic nie zyskuje. Nie może później użyć 9 GB. Po prostu na zawsze stracił jakąkolwiek korzyść z dodatkowego 1 GB, o ile pamięć była wolna.

Załóżmy na przykład, że twój system ma dużo wolnej pamięci RAM i uruchamiasz jakiś program. Po zakończeniu programu system ma dwie możliwości. Może przechowywać program (rzeczywisty plik wykonywalny na dysku) w pamięci lub może zwolnić pamięć, w której znajdował się plik programu.

Jeśli uwolni pamięć, musi zadać sobie trud uwolnienia jej. Jeśli kiedykolwiek chce ponownie użyć tej pamięci, musi zadać sobie trud jej uwolnienia. A jeśli ten program zostanie ponownie uruchomiony, należy go załadować z dysku. Potrójne fuj.

Jeśli nie zwalnia pamięci, nie musi zadawać sobie trudu, aby ją uwolnić. jeśli chce wykorzystać tę pamięć do innych celów, nie musi się tym przejmować, oszczędzając krok. A jeśli program zostanie ponownie uruchomiony, nie trzeba go ładować z dysku. Potrójne zwycięstwo. I oczywiście, ponieważ żaden proces obecnie nie uruchamia tego programu, pamięć nie zostanie skojarzona z żadnym procesem.

Tak więc dzieje się tak, że twój system ma wystarczającą ilość wolnej pamięci, aby mógł działać w bardzo wydajny sposób, nie marnując wysiłku, czyniąc pamięć niepotrzebnie niepotrzebną, a następnie nie musi marnować wysiłku na zwolnienie pamięci, aby z niej skorzystać. Zamiast tego może skutecznie przenosić pamięć z jednego użycia do drugiego, a jeśli dane w tej pamięci okażą się potrzebne, można uniknąć wejścia / wyjścia dysku.

Wszystko wokół jest zwycięstwem. Pamięć przechowuje dane, które system ma nadzieję, że jakiś przyszły proces może okazać się użyteczny, a także pozwala uniknąć obcych podróży przez listę wolnych pamięci, aby zwolnić pamięć tylko po to, aby zaznaczyć ją ponownie. Nowoczesne systemy operacyjne muszą utrzymywać bardzo małą ilość wolnej pamięci, wystarczającą do obsługi sytuacji awaryjnych (takich jak awarie strony i żądania pamięci z kodu przerwania), w których nie można łatwo przenieść pamięci z jednego użycia do drugiego.

David Schwartz
źródło
Dziękuję za odpowiedź David. Doceniam pomysł, że absolutnie wolna pamięć to zmarnowana pamięć, ponieważ można jej użyć do buforowania danych do przyszłego użytku, zamiast ładować je z dysku. Co ja nie rozumiem, dlaczego jest pamięć, że używa do buforowania nie wymienionych pod tytułem „Cached” / „Standby” ( „pamięci, która zawiera dane buforowane i kod, który nie jest obecnie w użyciu”) w Menedżerze zadań? Miałem wrażenie, że dane w pamięci podręcznej zostały tam umieszczone, a nie w metodzie „W użyciu” („Pamięć używana przez procesy, sterowniki lub system operacyjny”)
Claire Fey
@clairefey - fyi: Mark Russinovich wyjaśnia tajemnice zarządzania pamięcią: youtube.com/watch?v=AjTl53I_qzY youtube.com/watch?v=6KZdNsq1YV4
akira
@akira Dziękuję, na pewno obejrzę je jutro rano.
Claire Fey,
Będziesz zachwycony. Btw: Mark napisał narzędzia, o których mowa.
akira
Brakuje bardzo ważnego punktu - brak dowodu wycieku pamięci (którego nie masz), im mniej wolnej pamięci, tym lepiej. Systemy operacyjne są specjalnie zaprojektowane, aby zachować jak najmniej wolnej pamięci, starając się osiągnąć minimum absolutnie konieczne.
David Schwartz