Co jest przyczyną wysokiego zużycia procesora przez „pamięć systemową i skompresowaną” w systemie Windows 10?

39

Należy dokonać obserwacji systemu Windows 10 na moim laptopie z dostępną pamięcią 24G i użytym 2,5G. Nie ma „presji pamięci”. Inne pytania dotyczyły zużycia pamięci (co nie jest tutaj problemem). We wszystkich powiązanych pytaniach tutaj i gdzie indziej nie byłem w stanie znaleźć odpowiedniego wyjaśnienia problemu tego nadmiernego wykorzystania procesora w ciągu ostatniego miesiąca lub dwóch po jednej z aktualizacji systemu Windows 10.

Mogę zaakceptować, że w tej usłudze lub procesie jest wartość, ale ciągłe działanie i używanie dodatkowych zasobów procesora, aw konsekwencji mniej wydajne zużycie energii baterii, to jest problem, który próbuję rozwiązać.

W niektórych artykułach na tej stronie zasugerowano wyłączenie funkcji SuperFetch i ustawienie wpisu rejestru dla PrefetchParameters na 0. Zrobiłem oba i zrestartowałem komputer.

Ponownie uruchamiam komputer, wyłączam wygaszacz ekranu i uruchamiam menedżera zadań. Po kilku minutach usługa oznaczona jako „System i pamięć skompresowana” zaczyna konsekwentnie pobierać 5% mojego procesora. Moje podstawowe wykorzystanie procesora wynosi może 1%, co utrzymuje niski poziom wentylatora. Ale kiedy usługa „pamięci systemowej i skompresowanej” działa na poziomie 5%, wentylatory rosną. I po prostu działa.

Głupota Dlaczego ta usługa musi działać w sposób ciągły bez presji pamięci? Jakieś dodatkowe mechanizmy, które mogę wypróbować, aby to wyłączyć lub określić, co faktycznie robi? Czy gdzieś są wpisy pliku dziennika? A może dogłębne narzędzie diagnostyczne?

how-to-disable-windows-10-memory-kompression - tutaj nie ma prawdziwych odpowiedzi

windows-10-system-proces-podejmowanie-ogromne-ilości-ram

Kompresja pamięci 17993-windows-10-memory

desktop-build-10525-i-windows-10-memory

www.techish.net/system-and-compressed-memory/

windows-10-build-1511-overheating-cpu-fan-always

Windows Performance Recorder - teraz potrzebujesz linku, aby uzyskać informacje na temat interpretacji informacji

konserwacja szorowania

Raymond Burkholder
źródło
1
Tak, nigdy nie zrozumiałem, dlaczego system Windows używa pliku stronicowania, gdy jest dużo pamięci, wyłączenie pliku stronicowania może rozwiązać problem, chciałbym wiedzieć.
Moab
1
Możliwy duplikat systemu Windows 10, proces „System”, który
wymaga
@Moab: Postrzeganie, że Windows „używa pliku stronicowania, gdy jest dużo pamięci”, pochodzi z błędnej etykiety w menedżerze zadań Windows XP - oznaczono na wykresach „użycie PF”, kiedy powinno to być „zatwierdzenie opłaty”. Jeśli użyjesz PerfMon do zbadania faktycznego wykorzystania pliku strony, na ogół okaże się, że jest on znacznie mniejszy niż oczekiwano.
Jamie Hanrahan
2
przechwytywać ślad użycia procesora. Zainstaluj WPT z Win10 SDK: dev.windows.com/en-us/downloads/windows-10-sdk, uruchom WPRUI.exe, wybierz CPU, Dysk, VirtualAlloc, ResidentSet i przechwyć 1-2 minuty użytkowania SYSTEMU i zapisz do pliku ETL. Spakuj folder ETL + NGENPDB do pliku 7z / RAR, prześlij skompresowany plik do OneDrive, utwórz link udostępniania i opublikuj link udostępniania tutaj
magicandre1981
@ magicandre1981: dziękuję za zaoferowanie możliwej metodologii. Plik można znaleźć na stronie oneunified.net/files/rpb.20160102.WPR.7z . Jeśli coś zobaczysz, czy możesz opublikować swoją metodologię? Jestem pewien, że wiele innych postów w okolicy mogłoby skorzystać z tej techniki. ... jeszcze raz dzięki.
Raymond Burkholder

Odpowiedzi:

26

Analiza pliku ETL za pomocą WPA pokazuje, że użycie procesora nie wynika z kompresji pamięci systemowej. Pochodzi z ntoskrnl.exe!MiScrubMemoryWorker:

Line #, DPC/ISR, Process, Stack Tag, Stack, Count, TimeStamp (s), % Weight
8, , , ,    |    |    |- ntoskrnl.exe!MiScrubMemoryWorker, 79667, , 12,45
9, , , ,    |    |    |    ntoskrnl.exe!MiScrubNode, 79667, , 12,45
10, , , ,   |    |    |    ntoskrnl.exe!MiScrubNodeLargePages, 79667, , 12,45
11, , , ,   |    |    |    ntoskrnl.exe!MiScrubNodeLargePageList, 79667, , 12,45
12, , , ,   |    |    |    |- ntoskrnl.exe!MiScrubPage, 79663, , 12,45
13, , , ,   |    |    |    |    |- ntoskrnl.exe!RtlScrubMemory, 79653, , 12,45
14, , , ,   |    |    |    |    |    |- ntoskrnl.exe!RtlpGenericRandomPatternWorker, 38549, , 6,02

Ta funkcja służy do testowania pamięci pod kątem błędów poprzez wypełnianie / odczytywanie niektórych wzorców ( ntoskrnl.exe!RtlpGenericRandomPatternWorker).

Jest to zgodne z projektem i dzieje się, gdy bezczynne zadanie konserwacji rozpoczyna się, gdy urządzenie jest w stanie bezczynności.

magicandre1981
źródło
Dziękuję za to. To rzuca trochę światła na tę aktywność. Teraz, gdy wspominasz słowo bezczynność, można dodać dwa komentarze. 1) Oceniony plik ETI został utworzony, gdy byłem aktywny na konsoli, a procesor wynosił około 10% do 15% dla „pamięci systemowej i skompresowanej” i ostatecznie się zakończył. Mogłem więc uchwycić jakąś aktywność. Oceniłeś to na bezczynną konserwację. 2) w następnym komentarzu ....
Raymond Burkholder
10
W celu zamknięcia, w Win 10, poszedłem do: Start-> Panel sterowania-> Narzędzia administracyjne-> Harmonogram zadań Biblioteka harmonogramu zadań-> Microsoft-> ​​Windows-> MemoryDiagnostic Istnieją dwa elementy wiersza. Uruchomienie zadania może zależeć od zdarzeń dziennika. Nie jestem pewien, czy po prostu muszą istnieć, czy uruchamiają się po wejściu do dziennika. Wyłączyłem RunFullMemoryDiagnosticEntry. Po kilku minutach nie widzę już wykorzystania od 5% do 12%. We właściwościach zadania na karcie ustawień może być możliwe dostosowanie ustawień tak, aby nie działały zbyt często. .... testowanie na inny czas.
Raymond Burkholder
2
miło słyszeć, że to rozwiązuje problem.
magicandre1981
1
Aby dodać do komentarza, zdefiniowałem 2 zadania - RunFullMemoryDiagnostic i ProcessMemoryDiagnosticEvents, najważniejsze jest drugie. Włączono 4 wyzwalacze - „Dziennik: System, Źródło: Wyskakujące okienko”, „Dziennik: Aplikacja, Źródło: Błąd aplikacji” i dwa pozostałe. Wyłączenie 2 wyzwalaczy rozwiązało mój problem, problem polegał na tym, że niektóre aplikacje, które rozwijam, zapisują błędy w dzienniku zdarzeń i powodują sprawdzanie pamięci. Dwa pozostałe wyzwalacze są całkowicie związane z systemem, więc lepiej ich nie wyłączać
zihotki
3
ok, troll ocenił to. Tak, xperf / WPR / WPA jest ekspertem na poziomie 500, więc nie dla ciebie niewykształcony idiotyczny troll facepalm
magicandre1981
9

Po pierwsze, ponownie. Wykorzystanie procesora: Proces „System i pamięć skompresowana” (nie jest usługą) wykonuje wiele funkcji. To, że widzisz to przy użyciu czasu procesora, nie oznacza, że ​​wykonuje kompresję zawartości pamięci. Aby się dowiedzieć, użyj Eksploratora procesów, aby znaleźć nazwy funkcji wątku w procesie, który korzysta z czasu procesora. Aby to zrobić, musisz skonfigurować symbole w Eksploratorze procesów, zgodnie z opisem w tej odpowiedzi .

Kompresowana pamięć to pamięć, która była

  • część prywatnego zbioru roboczego procesu (tj. współdzielona z innym procesem); i
  • zmodyfikowane podczas tego procesu; i
  • następnie utracone z procesu z powodu zamiany stron i umieszczone na liście Zmodyfikowane strony. (Ten algorytm nie został znacząco zmieniony w systemie Windows 10. Nie otrzymujesz już żadnej zamiany stron niż kiedyś.)

Teraz ... jeśli nie masz pliku stronicowania, pozostanie on na zmodyfikowanej liście stron (aż do zakończenia procesu). (Uwaga: wyłączenie pliku stronicowania nie zmieni dotychczasowego zachowania).

Jeśli masz plik stronicowania (co jest oczywiście wysoce zalecane), zachowanie różni się między Windows 10 a wcześniejszymi wersjami.

  • W wersjach wcześniejszych niż Windows 10 był on wkrótce zapisywany w pliku stronicowania, a strony fizyczne byłyby przenoszone na listę stron w trybie gotowości. Odbywa się to poprzez wątek „zmodyfikowanego programu piszącego strony” w procesie systemowym.

  • W systemie Windows 10 jest najpierw kompresowany (zajmuje około połowy więcej miejsca niż kiedyś) i jest przechowywany w przestrzeni adresowej trybu systemowego procesu systemowego (teraz nazywanej „pamięcią systemową i skompresowaną”). Jeśli to konieczne, aby zwolnić pamięć, można ją zapisać do pliku strony i zwolnić do innego użytku. (Należy pamiętać, że korzyści płynące z kompresji miejsca dotyczą także miejsca na stronie i czasu wejścia / wyjścia.)

Tak naprawdę to dobra rzecz. Niezależnie od tego, jak wiele dodatkowej pamięci używa proces systemowy, cóż, przed Windows 10 około dwa razy tyle byłoby na zmodyfikowanej liście stron lub liście rezerwowej. Z pewnością nie zajmie więcej miejsca niż kiedyś.

Możesz (zgodnie z moimi ostatnimi testami) wyłączyć ten mechanizm, pozbywając się pliku strony, ale nie wpłynie to na zachowanie zastępowania strony; zmodyfikowane prywatne strony wypchnięte z procesów po prostu nie będą mogły zostać zwolnione do innego użytku, a zamiast być w procesie systemowym pamięć (około dwa razy więcej) po prostu będzie siedzieć na MPL.

Jamie Hanrahan
źródło
W eksploratorze procesów, bez załadowanych symboli debugowania, dostaję coś: ntoskrnl.exe! CcCopyWriteWontFlush + 0xb50 Czy wyjdzie z tego więcej szczegółów, jeśli dodam symbole? Istnieje 12 instancji, z których jedna deklaruje 12,5% procesora. Należy do procesu systemowego.
Raymond Burkholder
@RaymondBurkholder Możesz uzyskać więcej informacji, patrząc na stos wątków.
Daniel B
@DanielB: tak, to było z zakładki Wątki w wyskakującym okienku z patrzenia na właściwości procesu System na PID 4 w Process Explorer. Wyjaśnienie: przycisk stosu niczego nie pokazuje, ale przycisk modułu wskazuje, że pochodzi on z pliku ntkmlmp.exe z dnia 22.11.2015. Która myślę, że jest to przybliżona data, w której zaczęły się te dodatkowe procesory.
Raymond Burkholder
To tylko data ostatniej aktualizacji systemu Windows, która wpłynęła na ten plik. W końcu jest to element systemu.
Daniel B
@RaymondBurkholder Wyświetlanie „StartAddress” bez skonfigurowanych symboli jest po prostu nieprzydatne. Gdy zobaczysz nazwę symbolu (na przykład „CcCopyWriteWontFlush”) oraz przesunięcie („+ 0xb50”), nazwa symbolu prawie na pewno jest niepoprawna. To, czego chcesz, to np. Ntoskrnl.exe! ExpWorkerThread, bez wyświetlanego przesunięcia. Och ... zobaczysz przesunięcia dla modułów, dla których MS nie dostarcza symboli - prawie zawsze są to sterowniki innych firm. Są one wyświetlane jako nazwa modułu + offset, jak nvhda64v.sys + 0x30ac. Nie możemy uzyskać symboli dla nich, ale sama nazwa modułu jest często pomocna w debugowaniu spraw.
Jamie Hanrahan,
3

Może to być oprogramowanie „Killer Network Manager”. Jeśli go odinstalujesz, problem zniknie, podobnie jak sieć, ponieważ odinstalowuje również sterowniki karty sieciowej. Dobrą wiadomością jest to, że istnieje poprawka.

Najpierw przejdź do strony http://www.killernetworking.com/support/driver-downloads/item/killer-suite i pobierz nową wersję, ale jeszcze jej nie instaluj. Po prostu zapisz go i dowiedz się, gdzie znajduje się plik.

Następnie odinstaluj bieżącą wersję za pomocą panelu sterowania. Będziesz musiał ponownie uruchomić komputer. Po ponownym uruchomieniu komputera uruchom nowy instalator oprogramowania. Nowa wersja, która została wydana w styczniu 2016 r., Wydaje się nie mieć tego samego problemu.

Myślę, że stara wersja oprogramowania ma przeciek pamięci powodujący ten problem.

Oprogramowanie „Killer Network Manager” jest po prostu FYI i jest częścią Qualcomms Aethos Killer Wireless-AC / Wireless-N i przewodowych kart sieciowych E2200 / E2400. Bez oprogramowania nie masz internetu.

McPlot
źródło
Bez sterownika nie masz internetu. Państwo może dostać sterownik bez wszystkich bezcelowym guff i bloatware że producent myśli, czego potrzebujesz. Dolna strona połączonej strony zawiera link tylko do pobrania dla killernetworking.com/support/driver-downloads/standard-drivers
Mokubai
2

Miałem podobny problem po niedawnej aktualizacji do systemu Windows 10. Moja mysz nagle zaczęła się blokować, tzn. Szarpała się, gdy przesuwałem ją po ekranie, co bardzo utrudniało jej użycie.

Sprawdziłem użycie procesora w Menedżerze zadań i zauważyłem, że problem wystąpił, gdy proces „System and Compressed Memory” zaczął pobierać od 5-15% procesora. Uruchomiłem Process Explorer i sprawdziłem wątki i podobnie jak Raymond zauważyłem, że głównym winowajcą był CcWriteCopyWontFlush z przesunięciem 0xb50. Trochę Googlinga doprowadziło mnie do tej strony. Próbowałem zainstalować symbole Windows, jak sugerowano tutaj, ale nigdy nie pomogło mi to rozwiązać przesunięcia.

Problem był również sporadyczny. Pracowałbym przez kilka godzin, a potem zaczął pojawiać się na kilka minut, z przerwami i doprowadzając mnie do szaleństwa. Ponowne uruchomienie wyleczyłoby go na chwilę, a następnie powróciłoby.

Z odpowiedzi tutaj postanowiłem wytropić sterowniki na moim komputerze, więc zacząłem od Menedżera urządzeń i tam otrzymałem swoją odpowiedź. Gdy pojawił się problem, moje okno Menedżera urządzeń ciągle pozostawało puste i odświeżane, jak co sekundę lub dwie. To było zasadniczo nieczytelne. Więcej Googling zasugerował podłączenie i ponowne podłączenie zewnętrznego urządzenia USB. Przywiązałem go do telefonu Samsung, który ładuję codziennie z komputera za pomocą kabla podłączonego do portu USB. Używam również komputera i MyPhoneExplorer do synchronizacji telefonu z programem Outlook, więc mam kilka dysków zmapowanych do wewnętrznej i zewnętrznej pamięci RAM mojego telefonu, używając sterowników Samsunga na PC. Widziałem, jak te dyski pojawiają się i znikają często w Menedżerze urządzeń.

Mój telefon to Galaxy S2 i ma około 4 lat, a od ponad roku mam problemy z połączeniem na porcie microUSB. Może to tłumaczyć sporadyczny charakter problemu lub może to być kiepskie sterowniki komputera Samsung do mojego telefonu. Gdyby to był tylko kabel, nie wiem, dlaczego ponowne uruchomienie leczy problem przez jakiś czas, więc nadal jest to trochę tajemnicą, ale przynajmniej znam źródło i mogę to naprawić.

Odłączenie mojego telefonu jest najprostszym sposobem rozwiązania problemu, a ja i tak zamierzam go porzucić, ponieważ jest tak stary. Zastanawiam się więc, czy Raymond miał również na swoim komputerze sterownik urządzenia Samsung z podobnym oprogramowaniem. Raymond, jeśli nadal się odprawiasz, daj mi znać.

Jak wspomniałem, kabel był przez pewien czas gówniany, ponieważ na długo przed aktualizacją z Windows 7 do Windows 10, a oprogramowanie Samsunga zawsze było okropne, ale w Windows 7 niestabilność nie wpłynęła na moje inne działanie komputera. W systemie Windows 10 mysz była tak gwałtowna, że ​​stała się prawie bezużyteczna. Bardzo ciężko mi było wylądować na celu i myślę, że wpłynęło to również na klawiaturę z powodu pominięcia naciśnięć klawiszy. Dziwne jest, jak te czynniki się ze sobą wiążą i nie wiem, co sugerować Microsoftowi w sprawie ulepszenia systemu Windows 10, ale teraz czuję, że Windows 10 jest nieco „delikatny”. Używaj ostrożnie.

MartinF
źródło