Tylko pytanie z ciekawości. Oczyszczanie dysku od dłuższego czasu wydaje 100% jednego z moich rdzeni. Wydaje się, że spędza dużo czasu, szczególnie na czyszczeniu Windows Update.
Nie do końca rozumiem, dlaczego usuwanie plików powinno być tak intensywnym działaniem. Zwłaszcza, że spędził już sporo czasu na obliczaniu tego, co można usunąć.
Dlaczego czyszczenie dysku zajmuje tyle czasu i procesora? Co to robi, że jest tak intensywne?
Mogę potwierdzić, że czyszczenie aktualizacji systemu Windows wymaga prawie 100% użycia procesora, chodzi o kompresję WinSxS i reintegrację aktualizacji:
Rozpocząłem czyszczenie po raz pierwszy po instalacji systemu Windows, a ukończenie 50% zajęło 2 godziny. Z wykresu widać, że na początku dużo odczytu małych plików z dysku (drugi wykres), a po 100% zużyciu procesora do kompresji i tak dalej.
źródło
Żeby tylko podpalić pytanie, wykonałem na niewymownej maszynie wirtualnej następujące kroki:
cleanmgr
wykonywać swoje zadania i wziąć pod uwagę czas (więcej niż osiem godzin)Uwaga: Uruchomiłem ponownie na Linux SystemRescueCd tylko po to, aby móc wyświetlić listę wszystkich plików, także tych przeglądanych przez Windowta, a także aby zrobić takie spisanie tak szybko, jak to możliwe (bez sprawdzania acl itp.).
Pamiętaj też, że na
cleanmgr
liczę tylko czas po zakończeniu wyszukiwania (samo wyszukiwanie również zajmuje więcej niż sześć godzin).Dlatego usuwanie plików nie jest problemem (samo usuwanie
cleanmgr
zajmuje tylko pięć minut, ale zajmuje więcej niż osiem godzin).Samo usuwanie może przebiegać tak szybko, ponieważ hostem jest system Linux, szybkość ta jest spowodowana tylko tym, że Linux buforuje wszystkie zapisy do pliku o stałym rozmiarze, który jest używany jako dysk na maszynie wirtualnej (24GiB), a ponieważ mam 64GiB Pamięć RAM i pozwolę Windows 16GiB nie musi używać SWAP ani PAGEFILE.SYS; ponadto Linux może przechowywać cały plik na pamięci RAM (testowałem z tym plikiem na pamięci RAM i czasy usuwania są dużo robione, ale
cleanmgr
czas nie spada).Tak, jeśli wrzucę dysk wirtualny całkowicie do pamięci RAM,
cleanmgr
czas nie mija, ale jeśli ręcznie usuwam pliki, czas ten maleje nieco (pamięć podręczna zapisu w systemie Linux jest świetna, gdy masz na niej 64 GB pamięci RAM).Moja konfiguracja do testów:
Test1: Posiadanie dysku wirtualnego 24GiB na fizycznych dyskach twardych Test2: Posiadanie dysku wirtualnego 24GiB na pamięci RAM hosta Linux
Obawiam się, że
cleanmgr
robi coś w rejestrze systemu Windows dla każdego usuwanego pliku (dostęp do rejestru jest bardzo niski).Monitory, które miałem:
cleanmgr
pracy, z pikami 2%), pamięć podręczna dysku Linux jest naprawdę świetna, unikając przesyłania danych na prawdziwy dyskcleanmgr
pracował, z pikami 28%)Czy
cleanmgr
to oczywiste, że wykonuje dużo niewykrywalnej pracy, może czasy snu? Może nie, jeśli uzyskuje dostęp do rejestru, procesor na to nie jest liczony przez monitory Windows, dysk twardy na nim nie jest używany (rejestr znajduje się w pamięci RAM) itp., A każdy dostęp do rejestru może zająć więcej niż sekundę. . wypróbuj swój własny program, aby uzyskać dostęp do rejestru, otwierając rejestr i zamykając go dla każdej akcji w porównaniu do otwarcia HK * ... to wielka różnica.Jeśli
cleanmgr
tak, dla każdego pliku:Może to zająć nawet dwie lub trzy sekundy na operację, a jeśli wykona jedną operację na plik, może zająć prawie godzinę na każdy tysiąc plików ... moja liczba plików wynosiła niewiele ponad 40000 plików, więc 40000 plików / 8 godzin przetwarza jeden plik co 1,3 sekundy ... z drugiej strony, usuwanie ich w skrypcie (po poznaniu, które z nich) zajmuje mniej niż pięć minut, czyli usuwanie około 133 na sekundę ... hufe różnica.
cleanmgr
Czas zdecydowanie nie jest powodowany przezdeletion
to ja! Co jeszcze robi? Proszę M $ poprawić tę prędkość!źródło
Jednym ze sposobów złagodzenia tego problemu i przyspieszenia nieco fazy „Windows Update Cleanup” „Oczyszczania dysku” jest tymczasowe ustawienie wyższego priorytetu dla procesu TiWorker.exe na czas tak zwanej czynności „czyszczenia”.
w okienku „Szczegóły” Menedżera zadań znajdź
TiWorker.exe
i kliknij prawym przyciskiem myszy, aby wyświetlić menu podręczne. W „Set Priority” wybierz „Above Normal”. Dla mnie zwiększyło toTiWorker
aktywność procesora - od średnio około 16% - do jego pełnego potencjału 25% (na maszynie 4-rdzeniowej).Oprócz drobnego przyspieszenia - i prawdopodobnie dobrego poczucia spełnienia - zapewnia to niewiele do zrobienia, ponieważ najwyraźniej „Windows Update Cleanup” jest zakodowany w sposób, który z nieznanych przyczyn przebiega plik po pliku, czyniąc całą pracę okropnie powiązaną z dyskiem.
A także wiedz, że proces najprawdopodobniej nie został zawieszony i pewnego dnia rzeczywiście się zakończy. Aby to zweryfikować (i jeszcze bardziej odwrócić uwagę podczas irytującego czasu oczekiwania), możesz sprawdzić sekcję „Aktywność dysku” Monitora zasobów (uruchom „resmon.exe”).
źródło
Usunięcie 20 plików o rozmiarze 5 MB zajmuje więcej czasu niż 10 plików o rozmiarze 64 MB. Wynika to z faktu, że kiedy system usuwa pliki, nie robi tego naprawdę ich usuwa (ponieważ puste miejsce na dysku może być zrobione z „szumów”), ale po prostu nadpisuje przednią część, która mówi „Plik zaczyna się tutaj” bełkotem, a następnie chętnie zastąpi tę i kolejne części później, gdy będziesz chciał skorzystać z tego miejsca. W rzeczywistości usuwanie jest równoznaczne z pisaniem w inny sposób.
Oczyszczanie dysku polega na tym, że to, co czyści, to zwykle DUŻO małych plików (pliki cookie, pliki tymczasowe itp.). W związku z tym zapisuje na dysku o wiele więcej niż wiele innych rzeczy i może zająć tyle samo czasu, co instalacja czegoś nowego, z powodu zapisywania woluminu na dysku.
źródło
Kolejne słowo ostrzeżenia: część czasu zajmuje to, że podczas czyszczenia WinSxS, Oczyszczanie dysku musi najpierw rozpakować wiele plików. Tak więc użycie dysku faktycznie wzrasta w pierwszej części czyszczenia!
źródło
Innym sposobem na przyspieszenie procesu jest uruchomienie czyszczenia dysku przez około 5 minut. Zatrzymaj go, a następnie uruchom ponownie, a on przeleci przez chwilę! Ponadto wcześniejsze usuwanie fragmentów lub optymalizacja dysku twardego / SSD przyspieszy sprawę, pamiętaj tylko, aby po czyszczeniu usunąć fragment / optz ponownie.
źródło