Apenas uma pergunta de curiosidade. A Limpeza de disco gasta 100% de um dos meus núcleos há um bom tempo e continua funcionando. Parece estar gastando muito tempo, especialmente na Limpeza do Windows Update.
Não consigo entender por que a exclusão de arquivos deve ser uma atividade tão intensa. Especialmente porque ele já passou bastante tempo calculando o que poderia excluir.
Por que a limpeza de disco leva tanto tempo e CPU? O que faz isso é tão intensivo?
Posso confirmar que a Limpeza de Atualizações do Windows leva quase 100% do uso da CPU, trata-se da compactação e reintegração de atualizações do WinSxS:
Comecei a limpeza pela primeira vez após a instalação do Windows e demorou 2 horas para concluir 50%. No gráfico, você pode ver que, no primeiro lote de leitura de arquivos pequenos do disco (segundo gráfico), e após 100% de uso da CPU para compactação, e assim por diante.
fonte
Apenas para colocar fogo na questão, eu havia feito em uma máquina virtual imutável os próximos passos:
cleanmgr
fazer o seu trabalho e tomar nota do tempo (mais de oito horas)Observe que eu reiniciei no Linux SystemRescueCd apenas para poder listar todos os arquivos, também os que foram vistos pelo Windows, e também para fazer essa listagem o mais rápido possível (sem verificação de ACL, etc.).
Observe também que
cleanmgr
só conto apenas o tempo após o término da pesquisa (a pesquisa em si também leva mais de seis horas).Portanto, excluir os arquivos não é o gargalo (a exclusão em si só precisa de cinco minutos, mas
cleanmgr
leva mais de oito horas).A exclusão por si só pode ser tão rápida, já que o host é um Linux, que a velocidade é causada apenas porque o Linux armazena em cache todas as gravações no arquivo de tamanho fixo que é usado como disco na máquina virtual (24GiB) e desde que eu tenha 64GiB de RAM e eu deixo para o Windows 16GiB ele não precisa usar SWAP nem PAGEFILE.SYS; Além disso, o Linux pode armazenar o arquivo completo na RAM (eu testei com esse arquivo na RAM e os tempos de exclusão são muitos, mas o
cleanmgr
tempo não diminui).Sim, se eu colocar o disco virtual totalmente na RAM, o
cleanmgr
tempo não diminui, mas se eu excluir manualmente os arquivos, esse tempo diminui um pouco (o cache de gravação do Linux é ótimo quando você tem 64GiB de RAM).Minha configuração para os testes:
Teste1: Tendo o disco virtual de 24GiB nos discos rígidos físicos Teste2: Tendo o disco virtual de 24GiB na RAM do host do Linux
Receio que
cleanmgr
esteja fazendo algo no registro do Windows por cada arquivo excluído (acessar o registro é muito baixo).Monitores que eu tinha:
cleanmgr
estava trabalhando, com piques de 2%), o cache de disco do Linux é realmente ótimo, evitando que o dato seja enviado para o disco realcleanmgr
estava trabalhando, com picos de 28%)Tão claramente
cleanmgr
está fazendo muito trabalho indetectável, talvez horas de sono? Talvez não, se estiver acessando o registro, a CPU não é contada pelos monitores do Windows, o HDD não é usado (o registro está na RAM), etc., e cada acesso ao registro pode levar mais de um segundo. tente seu próprio programa para acessar o registro abrindo-o e fechando-o a cada ação versus deixando o HK * aberto ... é uma grande diferença.Então, se
cleanmgr
faz para cada arquivo:Pode levar até dois ou três segundos por operação e, se fizer uma operação por arquivo, pode demorar cerca de uma hora a cada mil arquivos ... minha contagem de arquivos foi um pouco mais do que 40000 arquivos, então 40000 arquivos / 8 horas estão processando um arquivo a cada 1,3 segundos ... do outro lado, excluí-los em um script (depois de saber quais) leva menos de cinco minutos, ou seja, excluir 133 por segundo ... um hufe diferença.
Então, definitivamente, o
cleanmgr
tempo não é causado pelodeletion
próprio eu! O que mais está fazendo? Por favor, M $ melhore essa velocidade!fonte
Uma maneira de atenuar esse problema e acelerar um pouco a fase "Limpeza do Windows Update" da "Limpeza de disco" é definir temporariamente uma prioridade mais alta para o processo TiWorker.exe pela duração da atividade de "limpeza".
No painel 'Detalhes' do Gerenciador de tarefas , localize
TiWorker.exe
e clique com o botão direito do mouse para mostrar um menu pop-up. Para "Definir prioridade", escolha "Acima do normal". Para mim, isso aumentou aTiWorker
atividade da CPU - de uma média de 16% - até seu potencial total de 25% (em uma máquina de 4 núcleos).Além da minúscula aceleração - e possivelmente da boa sensação de realização -, isso fornece muito pouco, pois aparentemente a "Limpeza do Windows Update" é codificada de uma maneira que, por algum motivo desconhecido, prossegue arquivo por arquivo, tornando o trabalho geral horrivelmente ligado ao disco.
E também saiba que o processo provavelmente não está travado e será concluído algum dia. Para verificar isso (e se distrair ainda mais durante esse tempo irritante de espera), você pode verificar a seção 'Atividade do disco' do Monitor de recursos (execute "resmon.exe").
fonte
A exclusão de 20 arquivos de 5 MB de tamanho levará mais tempo para excluir do que 10 arquivos de 64 MB de tamanho. Isso ocorre porque quando o sistema exclui os arquivos, ele não realmente excluí-los (como espaço vazio em uma unidade pode ser feita de "ruído" bits), mas apenas substitui a parte da frente que diz: "Um arquivo começa aqui" com rabiscos e depois substituirá felizmente isso e as partes a seguir mais tarde, quando você desejar usar o espaço. Na realidade, excluir é o mesmo que escrever de outra forma.
O que ocorre com a limpeza de disco é o que ele limpa geralmente são MUITOS arquivos pequenos (cookies da Internet, arquivos temporários etc.). Como tal, ele grava muito mais no disco do que muitas outras coisas e pode levar tanto tempo quanto instalar algo novo, devido ao volume que está sendo gravado no disco.
fonte
Outra palavra de advertência: parte do que leva tempo é que, ao limpar o WinSxS, a Limpeza de disco deve primeiro descompactar muitos arquivos. Portanto, o uso do disco aumenta na primeira parte da limpeza!
fonte
Outra maneira de acelerar o processo é executar a Limpeza de Disco por cerca de 5 min. Pare e, em seguida, reinicie-o, e ele passará rapidamente! Além disso, a desagregação ou otimização do seu HDD / SSD antecipadamente acelerará as coisas, lembre-se de desagregar / Optz novamente após a limpeza.
fonte