Просто вопрос любопытства. Очистка диска уже довольно долго расходует 100% одного из моих ядер. Кажется, тратит много времени, особенно на Windows Update Cleanup.
Не могу понять, почему удаление файлов должно быть такой интенсивной деятельностью. Тем более что он уже потратил довольно много времени на подсчет того, что можно удалить.
Почему очистка диска занимает так много времени и ресурсов процессора? Что он делает так интенсивно?
Я могу подтвердить, что очистка обновлений Windows занимает почти 100% загрузки ЦП, все дело в сжатии WinSxS и реинтеграции обновлений:
Я начал чистку в первый раз после установки Windows, и мне потребовалось 2 часа, чтобы завершить 50%. Из графика видно, что сначала выполняется чтение небольших файлов с диска (второй график), а также после 100% использования ЦП для сжатия и так далее.
источник
Просто чтобы поджечь вопрос, я сделал на неизменяемой виртуальной машине следующие шаги:
cleanmgr
делают свое дело и принимают к сведению время (более восьми часов)Пожалуйста, обратите внимание, что я перезагружен на Linux SystemRescueCd просто для того, чтобы иметь возможность перечислять все файлы, в том числе те, которые просматривал Window, а также делать такой список максимально быстро (без проверки ACL и т. Д.).
Также обратите внимание, что
cleanmgr
я считаю только время после окончания поиска (сам поиск занимает больше шести часов).Таким образом, удаление файлов не является проблемой (само удаление занимает всего пять минут, но
cleanmgr
занимает более восьми часов).Само удаление может идти так быстро, так как хост - это Linux, эта скорость вызвана тем, что Linux кэширует все записи в файл фиксированного размера, который используется в качестве диска на виртуальной машине (24 ГБ), и поскольку у меня 64 ГБ RAM и я позволю Windows 16GiB не нужно использовать SWAP, ни PAGEFILE.SYS; кроме того, Linux может хранить весь файл в оперативной памяти (я проверял этот файл в оперативной памяти, и время удаления прошло много, но
cleanmgr
время не уменьшается).Да, если я помещаю виртуальный диск полностью в ОЗУ,
cleanmgr
время не падает, но если я вручную удаляю файлы, это время уменьшается немного (кэш записи Linux отлично работает, когда на нем 64 ГБ ОЗУ).Моя конфигурация для тестов:
Тест1: Наличие виртуального диска 24GiB на физических жестких дисках Тест2: Наличие виртуального диска 24GiB в оперативной памяти хоста Linux
Я боюсь, что
cleanmgr
делает что-то в реестре Windows для каждого файла, который он удаляет (доступ к реестру очень низок).Мониторы у меня были:
cleanmgr
работал, с пиками 2%), дисковый кеш Linux действительно хорош, избегая отправки данных на реальный дискcleanmgr
работало, с пиками 28%)Так ясно
cleanmgr
делает много необнаружимой работы, может быть, время сна? Может быть, нет, если он обращается к реестру, процессор для этого не учитывается мониторами Windows, жесткий диск на нем не используется (реестр находится в оперативной памяти) и т. Д., И каждый доступ к реестру может занимать больше секунды. попробуйте свою собственную программу для доступа к реестру, открывая реестр и закрывая его для каждого действия, а не открывая HK * ... это большая разница.Так что, если
cleanmgr
делает для каждого файла:Это может занять до двух или трех секунд на операцию, и если она выполняет одну операцию на файл, это может занять около часа на каждую тысячу файлов ... мое количество файлов составило чуть более 40000 файлов, таким образом, 40000 файлов / 8 часов обрабатывает один файл каждые 1,3 секунды ... с другой стороны, удаляя их по сценарию (после того, как он узнает, какие из них) тратится менее пяти минут, то есть удаляет около 133 в секунду ... разница.
Так что определенно
cleanmgr
время не вызвано самимdeletion
собой! Что еще он делает? Пожалуйста, M $ улучшить эту скорость!источник
Один из способов смягчить эту проблему и немного ускорить этап «Очистка Центра обновления Windows» «Очистки диска» - это временно установить более высокий приоритет для процесса TiWorker.exe на время действия так называемой «очистки».
В панели «Подробности» диспетчера задач найдите
TiWorker.exe
и щелкните правой кнопкой мыши, чтобы открыть всплывающее меню. Для «Установить приоритет» выберите «Выше нормального». Для меня это повысилоTiWorker
активность процессора - с усреднения около 16% - до его полного потенциала 25% (на 4-ядерном компьютере).Помимо незначительного ускорения - и, возможно, хорошего чувства выполненного долга - это обеспечивает, что мало что можно сделать, так как очевидно, что «Очистка Центра обновления Windows» кодируется таким образом, что по неизвестной причине происходит от файла к файлу, делая всю работу ужасно привязанной к диску.
И еще, знайте, что процесс, скорее всего, не завис, и действительно когда-нибудь завершится. Чтобы проверить это (и еще больше отвлечь себя в течение этого раздражающего времени ожидания), вы можете проверить раздел «Активность диска» в Resource Monitor (запустите «resmon.exe»).
источник
Удаление 20 файлов размером 5 МБ займет больше времени, чем удаление 10 файлов размером 64 МБ. Это происходит потому, что когда система удаляет файлы, она на самом деле не удаляет их (так как пустое место на диске может быть сделано из битов «шума»), а просто перезаписывает переднюю часть, которая говорит: «Файл начинается здесь» с бредом, а затем он с радостью перезапишет эту и следующие части позже, когда вы захотите использовать пространство. На самом деле удаление - это то же самое, что и запись в противном случае.
Что касается очистки диска, это то, что он очищает, как правило, много маленьких файлов (интернет-куки, временные файлы и т. Д.). Таким образом, он выполняет гораздо больше операций записи на диск, чем многие другие, и может занимать столько же времени, сколько и установка чего-либо нового из-за того, что том записывается на диск.
источник
Еще одно предупреждение: часть того, что занимает время, заключается в том, что при очистке WinSxS очистка диска должна сначала распаковать множество файлов. Таким образом, использование диска на самом деле увеличивается для первой части очистки!
источник
Другой способ ускорить процесс - запустить очистку диска примерно на 5 минут. Остановите это, затем перезапустите это, и это быстро пролетит! Кроме того, дефрагментация или оптимизация вашего жесткого диска / твердотельного накопителя заранее ускорит процесс, просто не забудьте снова де-фрагментировать / отключить его после очистки.
источник