Przepraszam, wiem, że to brzmi jak nonszalancka odpowiedź ... ale odpowiedź na pytanie w twoim tytule brzmi „ponieważ nie powinny”.
Lub mówiąc grzeczniej: dużo pamięci RAM nie wykorzystuje się w prywatnych zestawach roboczych procesów. Niektóre z nich znajdują się we współużytkowanych zestawach roboczych procesów - ale nie można uzyskać wiarygodnego wyobrażenia o faktycznym wykorzystaniu tam z powodu udostępniania; zsumowanie liczb procesów da zdecydowanie zbyt duży wynik.
Inne rzeczy, które zajmują pamięć RAM, takie jak pula niestronicowana, część rezydentna puli stronicowanej i części rezydentne innych zastosowań przestrzeni jądra, w ogóle nie pojawiają się na ekranie „procesów” Menedżera zadań.
Jeśli chodzi o konkretny problem:
Na ekranie Menedżera zadań zobacz sekcję „Pamięć jądra”? Masz 6 GB „niestronicowanej pamięci” (to pula niestronicowana). To część sekcji „W użyciu” na drugim wykresie. Pula niestronicowana nie jest obciążana żadnym procesem, dlatego sumowanie liczb dla poszczególnych procesów w menedżerze zadań nie zbliża się do całkowitej używanej sumy. Niektóre sterowniki najprawdopodobniej go używają. Jest to całkowicie nadmierna kwota; powinno być znacznie poniżej 1 GB. jakikolwiek sterownik odpowiedzialny za nadmierną część korzystania z puli niestronicowanej jest bez wątpienia błędny.
RAMmap może to potwierdzić (na karcie „Liczniki użycia”, spójrz na sumę „Pula niestronicowana”), ale nie może pomóc w ustaleniu, który sterownik to powoduje.
Oto, jak go znaleźć: Uzyskaj kopię narzędzia Microsoft „poolmon”. Jest to narzędzie w trybie znakowym (chłopiec, czy kiedykolwiek tak jest) rozpowszechniane z zestawem sterowników systemu Windows. W przypadku systemu Windows 7 WDK jest do pobrania za darmo . Musisz pobrać całość (ISO) i zainstalować ją z tego, ale możesz wybrać instalację tylko narzędzi, jeśli to wszystko, czego chcesz.
Znajdź poolmon w katalogach WDK - pamiętaj, aby wybrać właściwy, 32- lub 64-bitowy - i uruchom go z wiersza polecenia administratora. Otrzymasz taki ekran:
Teraz naciśnij klawisz „p” (nie, nie żartuję. Nie ma tutaj menu!), Dopóki kolumna „Typ” pokaże tylko „Nonp”. Następnie naciśnij „b” (dwa razy, jeśli to konieczne), aby posortować wyświetlacz w kolejności malejącej według kolumny Bajty (tak jak to już tutaj zrobiono w przykładzie).
Następnie spójrz na kolumnę „Tag” dla najwyższego wiersza. W pokazanym tutaj (oczywiście sztucznym) przypadku jest to „wyciek”. (W tym systemie jest uruchomiony sterownik, który został celowo zepsuty, aby spowodować ten problem - to „nieszczelna” pula niestronicowana).
btw, podświetlone linie to te, które zmieniły się od czasu poprzedniej aktualizacji tego archaicznego ekranu.
Teraz wyszukaj c: \ Windows \ System32 \ Drivers w poszukiwaniu pliku .sys zawierającego ten ciąg. W takim przypadku będziesz szukać „Przeciek”, jak poniżej:
c:\windows\system32> findstr /s Leak *.sys
Następnie wyszukaj w Internecie odniesienia do tego ciągu i / lub nazwy sterownika.
Pomocny byłby również powrót tutaj i zgłoszenie pełnej nazwy, nazwy producenta itp. Z pliku .sys.
(Założę się, że tag, który znajdziesz, to ECMC, sterownik to intmsd.sys i jest on powiązany z produktem o nazwie ExpressCache lub IntelliMemory. Chciałbym „odinstalować” ten produkt. Jest aktualizacja, aby rozwiązać problem, ale nawet ze stałą wersją nigdy nie widziałem poprawy wydajności systemu przez ten produkt; zasadniczo powiela on funkcje, które są już w systemie Windows).
Jeśli nie możesz go znaleźć w ten sposób, następnym krokiem jest skorzystanie z „Zestawu narzędzi wydajności systemu Windows”. Przeszukaj to forum w poszukiwaniu tego ciągu, z odpowiedziami od magicandre1981, aby uzyskać instrukcje. Zignoruj odpowiedzi, które wspominają o xperf - jest to starsza wersja narzędzia.
AKTUALIZACJA: Zgodnie z komentarzami PO dokonał powyższego i stwierdził, że chociaż poolmon zgłosił, że całkowity rozmiar puli niestronicowanej był rzeczywiście ogromny, wszystkie przydzielone elementy były najwyraźniej małe. Moja hipoteza (także w komentarzach) jest taka, że wynika to z tego, co nazywam pulą „rozdętą”: Pula została przydzielona, a następnie zwolniona, ale z jakiegoś powodu ilość pamięci RAM przydzielonej do puli nie została zmniejszona, aby odzwierciedlić „uwolnienie” . Postępując zgodnie z procedurą opisaną w tej odpowiedzi przez magicandre, można zidentyfikować winowajcę.