Zużycie pamięci w systemie Windows 7 (x64) wzrasta do 90% +, gdy system jest bezczynny?

12

Mam system Windows 7 z 4 GB pamięci RAM. Kiedy system zaczyna od nowego rozruchu, zaczynam z około 33% użyciem. Jednak jeśli odejdę z komputerem bezczynnym przez kilka godzin lub w nocy, mój komputer zwykle wspina się na wysokie 80-te lub nawet ponad 90% wykorzystania (raz, osiągnęło aż 98%!).

Największe zatwierdzenie to zwykle SVCHost.exe o wielkości około 500 MB. Mój proces sidebar.exe również ma tendencję do wspinania się na mniej więcej tę samą liczbę.

Jest to nowa wersja od czasu uaktualnienia do Win7 SP1 i nie znajduję zbyt wielu informacji na ten temat w Internecie. Czy ktoś jeszcze napotkał ten problem?

Edytuj Powoduje poważne problemy z wydajnością, gdy wracam do komputera. Muszę ponownie uruchomić komputer, aby odzyskać pamięć.

Edycja 2: Oznaczony jako „service-pack”. Ten problem pojawił się dopiero po zainstalowaniu dodatku SP1, więc zastanawiam się, czy może to być podstawowa przyczyna.

Chris Sobolewski
źródło
Jak mierzysz zużycie pamięci? Menedżer zadań mówiąc 512 MB wolnego od 6 GB jest w porządku, jeśli większość z nich znajduje się w pamięci podręcznej jako że natychmiast zostanie uwolniony w razie potrzeby ...
Mokubai
Nie opisałeś problemu. Dlaczego potrzebujesz pamięci z powrotem? Co się stanie, jeśli nie uruchomisz się ponownie? Wszystkie opisane zachowania są całkowicie normalne. Wolna pamięć to zmarnowana pamięć - to nie tak, że jeśli używasz tylko 2 GB dzisiaj, możesz użyć 6 GB jutro.
David Schwartz
Mam 6 GB pamięci RAM na Win7 SP1, chcę używać VS2015 i SQL Management Studio do programowania, ale przy braku uruchomionego fizycznego pamięci RAM jest 90 +% teraz możesz zobrazować, co się stanie, jeśli uruchomię oba i tyle wirtualnej pamięci zostanie użyte, a ponieważ HD to sposób na spowolnienie pamięci, możesz sobie wyobrazić, co się stanie. Najczęściej używany jest przez svchost.exe -k LocalSystemNetworkRestricted
Adeem

Odpowiedzi:

6

Jest to problem tylko wtedy, gdy ta pamięć jest niedostępna dla innych zadań, gdy zostanie wywołana. To, że jest teraz używane, nie oznacza, że ​​nie można go szybko zwolnić w razie potrzeby, a pozostawienie nieużywanej pamięci byłoby prawdziwym marnotrawstwem.

Na marginesie, to kolejna różnica w sposobie wykorzystania pamięci przez systemy Windows i Linux. W systemie linux byłoby to nieco bardziej niepokojące, ponieważ swap jest po prostu używany w ostateczności. Nic nie jest zamieniane, chyba że jest to absolutnie konieczne, więc Linux musiałby najpierw poświęcić czas na zapisanie zużytej pamięci RAM na partycji wymiany, zanim będzie można ją odzyskać dla innych programów. Z kolei system Windows lubi cały czas stronicować pamięć RAM. W ten sposób, jeśli musi użyć pamięci RAM do użycia w innym procesie, jest już stronicowany na dysk, dzięki czemu można go szybciej odzyskać. Jest to kompromis - Linux jest szybszy pod tym względem dla pamięci RAM, która nigdy nie będzie stronicowana / zamieniana, a Windows jest szybszy pod tym względem w tych czasach, gdy trzeba szybko zamienić.

Joel Coehoorn
źródło
@JoelCoehoom „Z drugiej strony, system Windows lubi cały czas stronicować pamięć RAM.” Przepraszam, ale to powszechny mit. W moim systemie bankomatowym mam 16 GiB RAM i 7,5 GiB wirtualnej przestrzeni adresowej opartej na plikach stron (tj. „Ładowanie zatwierdzenia”). Ale plik stronicowania zawiera w rzeczywistości tylko około 570 MiB. (Myślę, że mit zaczął się, gdy menedżer zadań XP z jakiegoś niezgłębionego powodu oznaczył ten wykres jako „użycie PF”. W rzeczywistości pokazywał jedynie opłatę za zatwierdzenie, którą można traktować jako bieżące potencjalne wykorzystanie pliku strony.
Jamie Hanrahan
Mam 6 GB pamięci RAM na Win7 SP1, chcę używać VS2015 i SQL Management Studio do programowania, ale przy braku uruchomionego fizycznego pamięci RAM jest 90 +% teraz możesz zobrazować, co się stanie, jeśli uruchomię oba i tyle wirtualnej pamięci zostanie użyte, a ponieważ HD to sposób na spowolnienie pamięci, możesz sobie wyobrazić, co się stanie. Najczęściej używany jest przez svchost.exe -k LocalSystemNetworkRestricted
Adeem
2

Wyłącz proces paska bocznego. Wiadomo, że wycieka dużo pamięci (chociaż bardziej prawdopodobne jest, że hostowane przez niego dodatki powodują wyciek zasobów).

Sugestia: Aktualizacja do 8 GB pamięci RAM jest lepsza, jeśli płyta główna może to obsługiwać, ponieważ zarówno Windows Vista, jak i Windows 7 zużywają dużo pamięci, a nowsze aplikacje również wydają się zużywać więcej pamięci RAM w tych dniach.

Randolf Richardson
źródło
2
Naprawdę nie uważam „wyłączenia paska bocznego” za realną opcję. Moje gadżety są tam, odkąd mam system, a ten problem jest dopiero niedawno (od SP1).
Chris Sobolewski,
@Chris Sobolewski: To z pewnością twój wybór. Oczywiście, jeśli wyłączysz go na jakiś czas, będziesz miał tę zaletę, że wykluczysz go jako winowajcę (lub stwierdzisz, że jest to przyczyną wycieku zasobów). Nie pomijaj też możliwości, że aktualizacja SP1 mogła zaktualizować niektóre z tych gadżetów, a także sam kod paska bocznego - tylko dlatego, że jest to aktualizacja do naprawiania rzeczy, nie oznacza, że ​​nie zepsuła czegoś innego.
Randolf Richardson,
2

Mówisz, że największe użycie pamięci to 5 MB? Dla mnie svhost.exe zajmuje 180 MB pamięci, a Firefox z uruchomieniem kilku kart zajmuje około 500 MB. Czy możesz sprawdzić, co tak naprawdę zajmuje pamięć i dać nam znać? Czy ma zainstalowany program SQL Server? SQL jest znany z tego, że zjada wszystko żywe, w zależności od rodzaju baz danych, które możesz mieć do programowania.

W każdym razie skorzystaj z Eksploratora procesów , posortuj procesy według prywatnych bajtów i zobacz, co zajmuje cała aplikacja pamięci. A może masz wiele procesów, dzięki którym zużywa całą pamięć. Musisz to sprawdzić.

MadBoy
źródło
To jest poprawne. Kiedy zaczynam, proces hosta zajmuje około 180 MB, tak jak twój, ale kiedy wracam z dłuższego czasu nieużywania go, zwykle wynosi około 500 MB. Być może masz coś do czynienia z SQL, korzystam z instancji mySQL, jednak używam go tylko do celów testowych i DB nie powinien nic robić, jeśli nie korzystam z komputera. Spróbuję tego, ale zastanawiam się, jak to się łączy, ponieważ korzystam z komputera przez jakiś czas i jest to nowe zjawisko.
Chris Sobolewski,
Możesz użyć eksploratora procesów i kliknąć svchost.exe prawym przyciskiem myszy na proces naruszający, a następnie przejść do karty usług i dowiedzieć się, jakie usługi są uruchomione. Mój svhost.exe z dużą ilością pamięci hostuje 2 usługi BFE i MpsSvc. Zobacz, jakie jeszcze procesy tam masz. Wydaje się również, że istnieje wiele możliwych opcji dotyczących wycieku pamięci svhost -> social.technet.microsoft.com/Forums/en-US/w7itproperf/thread/... Spróbuj google trochę. Może to być dowolny problem - od wycieku usługi po sterowniki wideo. Czy możesz spróbować zaktualizować sterowniki do najnowszych wersji?
MadBoy,
2

Dzięki Eksploratorowi procesów możesz najechać wskaźnikiem myszy na scvhost.exeproces, aby zobaczyć, jakie usługi obsługuje.

Jeśli potrzebujesz szczegółowo rozwiązać ten problem, Microsoft Sysinternals VMMap może ci w tym pomóc.
Pozwala na sprawdzenie, która pamięć jest mapowana i może pomóc zidentyfikować konkretną usługę ...

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Tamara Wijsman
źródło
Wygląda na to, że powinno być pomocne. Czy ma opcję logowania, żebym mógł ją zostawić i odejść, a następnie zobaczyć, co się stało, kiedy mnie nie było?
Chris Sobolewski,
@ChrisSobolewski: Nie sądzę, że poza linią czasu lub pozostawieniem Process Explorer uruchomionym w tle ...
Tamara Wijsman,
0

Mam ten sam problem - najwyraźniej jest to wyciek pamięci na pasku bocznym spowodowany przez IE9. Oto więcej informacji.

W tej chwili wiem o dwóch poprawkach: istnieje hack, który od czasu do czasu uruchamia pasek boczny, a bardziej trwałym rozwiązaniem jest odinstalowanie IE9.

Domchi
źródło