Po pierwsze, zanim przejdę do bardziej szczegółowej odpowiedzi. W pierwszym zrzucie ekranu pula niestronicowana (rodzaj użycia pamięci jądra) ma pojemność 1,3 GB. Wydaje mi się to niezwykle wysokie, szczególnie przez 30 minut po uruchomieniu. Wydaje mi się, że widziałem, jak NP Pool osiąga tak wysoki poziom po długim okresie użytkowania lub z programem, który przeciekał jak sito. Dla kontrastu, moja pula NP ma zwykle od 100 do 200 megabajtów, a pula stronicowana może mieć nawet 400 lub 500 (i to po tym, jak mój system działał bez ponownego uruchamiania przez tygodnie).
Możesz włączyć kilka dodatkowych kolumn w Menedżerze zadań, klikając prawym przyciskiem myszy nagłówki kolumn i wybierając wybierz kolumny. Należy dodać Working Set (private)
, Working Set (shared)
, Commit
, i NP Pool
. Przeanalizuję wszystkie twoje procesy od wszystkich użytkowników i sprawdzę, czy któryś z nich ma pulę NP większą niż około 256 KB. Jeśli zauważysz jakieś, szczególnie te, które są znacznie wyższe, może to być przyczyna problemu lub przynajmniej jego część.
Całkowity zestaw roboczy, ilość pamięci fizycznej wykorzystywanej przez proces, jest kombinacją prywatnych i współużytkowanych zestawów roboczych (WS). Prywatne jest zwykle większe dla większości procesów, jednak niektóre mogą korzystać z większej ilości współdzielonych WS. Te dwa powinny zwykle sumować się do całkowitej WS. Zatwierdzenie to ilość zestawu roboczego, która została przypisana do magazynu kopii zapasowych (w większości przypadków plik stronicowania systemu Windows). Aplikacje w tle często mają większy Commit niż WS, co wskazuje, że znaczna część ich puli stronicowanej została zamieniona z pamięci i do pliku stronicowania (co jest dość normalne w przypadku aplikacji komputerowych, które zostały zminimalizowane i nie były używane przez jakiś czas).
Pula niestronicowana jest pamięcią, której nie można i nigdy nie można zastąpić pamięcią fizyczną ... co jest efektywnym trwałym minimalnym zużyciem pamięci fizycznej. Pamięć puli NP często zawiera kod programu i krytyczne sekcje, które muszą znajdować się w pamięci fizycznej, aby zachowywać się poprawnie lub bezpiecznie, specjalne stosy itp. Z 60 procesów, jeśli wszystkie mają 256 KB pamięci puli NP, wówczas absolutne minimalne użycie pamięci fizycznej wyniesie około 15.360 KB. W większości przypadków jedna lub dwie aplikacje mogą mieć pulę NP 256 KB, podczas gdy większość ma mniej, często znacznie mniej (lub nie ma ich wcale). Jest bardzo mało prawdopodobne, że system przerzuci cały zestaw wszystkich działających procesów, więc nigdy nie oczekuj, że użycie pamięci będzie tak niskie.
Wreszcie, celem większej ilości pamięci jest uniknięcie konieczności stronicowania danych do iz rozszerzonej pamięci (wymiany, pliku strony) na dysku fizycznym. Stronicowanie to proces polegający na przenoszeniu bloków przydzielonej pamięci fizycznej, wypychaniu niektórych na dysk i przenoszeniu innych do pamięci fizycznej z dysku. Przywoływanie jest, mówiąc najprościej, wysoce niepożądane. Nie jest to samo w sobie „złe”, ale może występować utrudnienie w wydajności, gdy występuje zbyt często. Ostatecznym punktem zwiększenia całkowitej fizycznej pamięci RAM w systemie jest umożliwienie większej liczbie procesów zachowania większej liczby zmian w pamięci fizycznej (większy zestaw roboczy). Zużycie pamięci nie stanowi problemu, a gdy więcej wykonujących procesów zużywa więcej pamięci, całkowita wydajność systemu i wydajność aktywnego procesu będą zwykle wyższe,
System Windows zarządza pamięcią i automatycznie zapisuje dane z pamięci do i z pliku strony (wymiany). Jeśli uruchomisz proces, który wymaga 9 GB pamięci, a Twój system zużywa już 4 GB (z 12 GB), system automatycznie zorientuje się, które procesy nie potrzebują natychmiastowego dostępu do całego zestawu roboczego, i wyświetli niektóre lub wszystkie strony puli stronicowanej do wymiany, aby zwolnić ten dodatkowy 1 GB. Jeśli twój duży proces w końcu potrzebuje więcej pamięci, system Windows jeszcze bardziej zmniejszy zestaw roboczy innych procesów, dopóki nie będzie miał wystarczającej ilości wolnego miejsca do przydzielenia nowo żądanego bloku. Twój duży proces może ostatecznie zużyć całą dostępną pamięć oprócz NP Pool i być może trochę dodatkowego narzutu w celu okresowego wykonywania procesów, które nie pozwalają Windowsowi zwolnić więcej zestawu roboczego (i. mi. mają oczekujące błędy strony, które w przeciwnym razie Windows wymieniłby się z pamięci fizycznej, ale ponieważ są proszone, nie można ich przenieść).
Jeśli proces potrzebuje więcej pamięci, niż jest to dozwolone (procesy 32-bitowe zwykle mają dostęp do 2 Gb, a niektóre nieco mniej niż 4 Gb za pomocą ulepszonych technik, podczas gdy procesy 64-bitowe zwykle mają dostęp do około 48 Gb pamięci, każdy), wtedy system Windows czasami spróbuje do wirtualizacji pamięci za pomocą przestrzeni wymiany. Jeśli 32-bitowa aplikacja chce wykorzystać maksymalne dozwolone 2 GB miejsca, ale dostępne jest tylko 1,2 GB, system Windows zarezerwuje pełne 2 GB w pliku strony i przenosi własne dane do i z pliku strony w razie potrzeby w celu obsługuje wykorzystanie pamięci aplikacji. Całkowite użycie „pamięci” w tym przypadku może wydawać się większe niż dostępna pamięć fizyczna, gdy przechodzisz przez Total Commit. Total Commit zwykle osiąga maksymalny rozmiar przy wielkim całkowitym rozmiarze pliku strony, który zarządzany przez system zwykle wynosi 2-3 razy więcej pamięci fizycznej. W Twoim przypadku,
Ostatni punkt. W odpowiedzi powiedziałeś, że masz 16 GB pamięci RAM, a jako Menedżer zadań widzi tylko 12 GB pamięci RAM. Jedna z dwóch rzeczy tutaj. Albo twój system naprawdę ma tylko 12 GB pamięci RAM, albo jeden z twoich drążków nie rejestruje się poprawnie. Jeśli pamięć RAM (zakładam 4 x 4 Gb), może być źle, może nie być prawidłowo osadzona na płycie głównej lub na płycie głównej może wystąpić problem z wykrywaniem pamięci.
Aby sprawdzić, czy to ten ostatni, należy najpierw zaktualizować system BIOS płyty głównej do najnowszej wersji. Miałem podobny problem ... moje sześć trzyczęściowych pamięci RAM DDR3 (6x 2 Gb) wszystkie były dobre w oparciu o indywidualne testowanie każdego z nich ... ale moja płyta losowa postanowiła nie liczyć jednego lub dwóch z nich tak często, często pozostawiając mi tylko 8 GB pamięci RAM. Aktualizacja systemu BIOS rozwiązała problem i mam teraz niezawodny dostęp do wszystkich 12 GB pamięci.