Dlaczego program chkdsk używa 90% mojej pamięci RAM?

24

Kiedy zbudowałem nowy komputer, oddałem mój stary rodzicom, którzy bardzo potrzebowali aktualizacji, po wyczyszczeniu wszystkiego, oczywiście, pozostawiając tylko system operacyjny i kilka programów. Przez jakiś czas działało dobrze, zanim zaczął się nie ładować systemu Windows (po prostu utknął). Po zbadaniu tego zachowania i zapytaniu, zdecydowałem, że może to być uszkodzony dysk twardy, więc wyciągnąłem go i podłączyłem do własnego komputera, aby uruchomić na nim program chkdsk (początkowo zrobiłem to, aby uruchomić komputer na dysku, ale ponieważ mój komputer jest skonfigurowany z RAID, a instalacja systemu Windows nie miała sterowników RAID, po prostu uruchomiłem własną instalację systemu Windows 7 i uruchomiłem na niej program chkdsk).

Zrobiłem to w ostatni piątek wieczorem i od tamtej pory działa (co do tej pory trwało około 6 dni). Nie jestem zaskoczony, ponieważ może być powolny, to dysk twardy o pojemności 1 TB, a także „zielony” Western Digital, więc prawdopodobnie i tak pracuje z mniejszą prędkością obrotową. Widzę, że robi postępy, więc wiem, że nie jest zablokowany, a lampka dysku twardego jest stale włączona na moim komputerze, z którego nie korzystałem zbyt często, oprócz udostępniania plików w sieci i w Internecie przeglądanie, podczas gdy to działa.

Mój komputer ma 16 GB pamięci RAM i działa system Windows 7 Pro x64. Dlaczego Chkdsk zajmuje 90% tego? Utrzymuje ten poziom na stałym poziomie i utrzymuje się od wielu dni, od 90% do 91%, ponieważ stale uwalnia i wypełnia pamięć. Zużycie procesora jest bardzo niskie (czego się spodziewam, ponieważ jest to bardzo ciężka operacja we / wy).

Nie wygląda na to, żeby działo się coś złego, ale jestem ciekawy. Dlaczego Chkdsk zajmuje tak dużo pamięci? Przynajmniej cieszę się, że wydaje się to robić inteligentnie, ponieważ utrzymuje wysoki poziom bez konieczności wyrzucania głównego dysku twardego przez stronicowanie.

Czy ktoś wie? Czy to normalne?

Ben Richards
źródło

Odpowiedzi:

19

Jeśli działa od kilku dni, zakładam, że biegałeś chkdskz /rflagą.

W systemie Windows 7 użycie tak dużej ilości pamięci RAM jest normalne. Źródło

Zespół systemu plików natychmiast zaczął analizować problem. [...] [F] Z ich perspektywy wykorzystanie pamięci było zgodne z projektem i było specyficzną zmianą systemu Windows 7 w tym scenariuszu (flaga / r chwyta wyłączną blokadę i naprawia dysk, więc naszym założeniem jest to, że naprawdę lubisz dysk do naprawienia, zanim zrobisz więcej rzeczy na maszynie [...]).

afrazier
źródło
Korzystam z GUI, ale zaznaczyłem pole wyboru, aby wyszukać i spróbować naprawić uszkodzone sektory, co jest równoważne. Dzięki za link!
Ben Richards
To nie tylko Windows 7; Windows 2008 R2 również przechodzi w ten niewyobrażalny stan. Sprowadzam pojedynczy dysk do sprawdzenia, a program chkdsk absolutnie potrzebuje zużyć 20 GB pamięci RAM dla tego pojedynczego dysku i spowolnić resztę serwera. To nie pomyłka, 20 GB pamięci.
icelava
@icelava: Biorąc pod uwagę, że 2008 R2 jest kontynuacją bazy kodu Windows 7, nie jest to zaskakujące. Prawdopodobnie wpłynie to również na wszystkie nowsze systemy operacyjne.
afrazier
Sprawdziłem zewnętrzny dysk NTFS 2 TB bez przełączników / r (lub innych) i nadal zużywa prawie całą pamięć RAM (mam 5 GB). Windows 7 64bit.
David Balažic
Ciekawy. Właśnie uruchomiłem go na dysku 1,5 TB i nawet nie osiągnął 1 GB w systemie 8 GB. Spodziewałbym się, że czek tylko do odczytu użyje tylko tyle pamięci RAM, ile jest wymagane.
afrazier
8

Używam CHKDSK /rna dysku Seagate 1TB SATA 3GBs w tej chwili - Windows 7 x64 Ultimate, CHKDSK zużywa 31PL mojego 32GB RAM. Jeśli jednak załadujesz inny program, taki jak After Effects, CHKDSK zwolni pamięć RAM, aby program działał całkiem dobrze.

Richard
źródło
5

Jeśli masz więcej niż 4 GB pamięci RAM, możesz ograniczyć użycie pamięci RAM chkdsk do 4 GB, używając 32-bitowej wersji chkdsk. Znajduje się w C: \ Windows \ SysWow64 \ chkdsk.exe

Może to być zaletą, ponieważ inne już załadowane programy nie zostaną zamienione na dysk, a pamięć podręczna dysku nie zostanie opróżniona. Równoczesne uruchamianie programu chkdsk z innymi programami nie wpływa negatywnie na wydajność innych programów, chyba że używają tego samego dysku.

informatorius
źródło
Świetna wskazówka! Mój komputer programistyczny ma z jakiegoś powodu 48 GB i zauważyłem duży spadek wydajności w przypadku nowych procesów (a jako programista nowe procesy są uruchamiane bardzo, bardzo często). Z powodu działania chkdskw tle, zużywa prawie całość. To uratowało dzień;)
Abel
3

Jak już wspomniano, jest to zgodne z projektem w systemie Windows 7. „Projekt” został naprawiony począwszy od systemu Windows 8, a teraz chkdsk zużywa mniej pamięci RAM. Jeśli chcesz, aby Win7 wykorzystał całą pamięć RAM w celu poprawy wydajności, uruchom chkdskten parametr /perf.

/ perf Tylko NTFS: (Musi być używany z „/ scan”) Zużywa więcej zasobów systemowych, aby wykonać skanowanie tak szybko, jak to możliwe. Może to mieć negatywny wpływ na wydajność innych zadań uruchomionych w systemie.

magicandre1981
źródło
2

Wydaje się, że jest to zgodne z projektem. Niewykorzystana pamięć RAM jest zmarnowanym zasobem. Nie ma żadnego powodu, aby minimalizować użycie pamięci RAM i utrzymywać pamięć RAM w „rezerwie”, gdy można ją niemal natychmiast zmienić w razie potrzeby. Windows 8 użyje pamięci RAM do wszystkiego, a nie pozostanie bezczynny. Być może ta filozofia rozpoczęła się w Windows 7 i dotyczyła CHKDSK. Nie wiem, jaką korzyść CHKDSK uzyskuje z wysokiego zużycia pamięci RAM, ale jestem skłonny wierzyć, że jest to korzyść. Dawno temu nauczyłem się, że to, że nie rozumiem, nie oznacza, że ​​nie ma dobrego powodu. Dopóki zużycie pamięci maleje, gdy inne programy potrzebują pamięci, nie stanowi to problemu.

Nathan Brazylia
źródło
2
Nieużywany Ram jest marnowany tylko, dopóki nie zostanie wykorzystany przez inny program, który go potrzebuje. Jeśli zużyjesz całą pamięć RAM, a następnie chcesz uruchomić inny program, właśnie zwiększyłeś czas ładowania o rzędy wielkości, ponieważ najpierw musisz wypłukać wszystkie te rzeczy w pamięci RAM na dysk, który jest boleśnie powolny. Nikt nie zauważyłby tego problemu, gdyby nie spowodował problemu. Dobrym pomysłem jest zawsze mieć pamięć RAM na rozpoczęcie nowych procesów. Chciałbym wiedzieć, kto jest genialnym pomysłem, aby zużyć całą pamięć RAM.
horta
2
Niektóre programy, takie jak VMware, odmawiają uruchomienia maszyn wirtualnych, chyba że dostępna jest wystarczająca ilość pamięci RAM (nie próbuje zużywać pamięci RAM, po prostu się poddaje bez próby, co oznacza, że ​​chkdsk nie ma nawet możliwości zwolnienia). Zabicie chkdsk ma potencjalnie szkodliwe skutki, więc masz do wyboru 1) poczekaj nieuzasadniony czas lub 2) ryzyko utraty danych na sprawdzanym dysku. Yay Microsoft.
aggregate1166877
0

To jest błąd. Awaria mojego komputera spowodowała użycie zbyt dużej pamięci, a to z 8 GB pamięci RAM i 4 GB pliku wymiany. Nie ma takiej możliwości. Mogą to nazwać „z założenia”, ale to nie ma znaczenia. To wyraźnie błąd. Nie ma jednej ważnej podstawy dla programu chkdsk do przechowywania tak dużej ilości danych w pamięci RAM.

metamorfoza
źródło
2
Format pytań i odpowiedzi na stronie zastrzega odpowiedzi na rozwiązania tego pytania. Ten post jest raczej komentarzem niż odpowiedzią. Zawsze możesz komentować własne posty, a gdy będziesz mieć odpowiednią reputację , będziesz mógł komentować każdy post . Brak odpowiedzi ma tendencję do przyciągania głosów negatywnych i może zostać usunięty.
fixer1234,
Moim zdaniem jest to odpowiedź na pytanie zadane przez Plakat i dlatego jest rozwiązaniem, a nie komentarzem.
metamorfoza