Solo una pregunta de curiosidad. Disk Cleanup ha estado gastando el 100% de uno de mis núcleos durante bastante tiempo y sigue funcionando. Parece estar pasando mucho tiempo, especialmente en Windows Update Cleanup.
No puedo entender por qué eliminar archivos debería ser una actividad tan intensa. Especialmente porque ya pasó mucho tiempo calculando lo que podría eliminar.
¿Por qué Disk Cleanup toma tanto tiempo y CPU? ¿Qué hace que sea tan intenso?
Puedo confirmar que Windows Updates Cleanup requiere casi el 100% de uso de la CPU, se trata de la compresión WinSxS y la reintegración de las actualizaciones:
Comencé la limpieza la primera vez después de la instalación de Windows y tardé 2 horas en terminar el 50%. En el gráfico se puede ver que en la primera lectura de archivos pequeños del disco (segundo gráfico), y después del 100% de uso de la CPU para la compresión, y así sucesivamente.
fuente
Solo para encender la pregunta, había hecho en una máquina virtual inmutable los siguientes pasos:
cleanmgr
hacer su trabajo y tomar nota de la hora (más de ocho horas)Tenga en cuenta que reinicié en Linux SystemRescueCd solo para poder enumerar todos los archivos, también los que Windows buscó y también para hacer esa lista lo más rápido posible (sin verificación de acl, etc.).
También tenga en cuenta que
cleanmgr
solo cuento el tiempo después de que finaliza la búsqueda (la búsqueda en sí también lleva más de seis horas).Por lo tanto, eliminar los archivos no es el cuello de la botella (la eliminación en sí misma solo necesita cinco minutos, pero
cleanmgr
lleva más de ocho horas).La eliminación en sí misma puede ir tan rápido ya que el host es un Linux, que la velocidad se debe a que Linux almacena en caché todas las escrituras en el archivo de tamaño fijo que se utiliza como disco en la máquina virtual (24GiB), y dado que tengo 64GiB de RAM y dejo que Windows 16GiB no necesite usar SWAP ni PAGEFILE.SYS; Además, Linux puede mantener el archivo completo en la RAM (lo probé con ese archivo en la RAM y los tiempos de eliminación se realizan mucho, pero el
cleanmgr
tiempo no se cae).Sí, si pongo el disco virtual totalmente en RAM, el
cleanmgr
tiempo no se reduce, pero si elimino los archivos, ese tiempo se reduce un poco (el caché de escritura de Linux es excelente cuando tienes 64GiB de RAM).Mi configuración para las pruebas:
Prueba1: Tener el disco virtual de 24GiB en los discos duros físicos Prueba2: Tener el disco virtual de 24GiB en la RAM del host Linux
Me temo que
cleanmgr
está haciendo algo en el registro de Windows por cada archivo que elimina (el acceso al registro es muy bajo).Monitores que tuve:
cleanmgr
funcionaba, con picos del 2%), el caché de disco de Linux es realmente excelente para evitar que se envíe el dato al disco realcleanmgr
estaba trabajando, con picos del 28%)Claramente, ¿
cleanmgr
está haciendo mucho trabajo indetectable, tal vez horas de sueño? Tal vez no, si está accediendo al registro, la CPU para eso no es contada por los monitores de Windows, el HDD que no se usa (el registro está en la RAM), etc., y cada acceso al registro puede tomar más de un segundo. intente su propio programa para acceder al registro abriendo el registro y cerrándolo por cada acción en lugar de dejar que HK * se abra ... es una gran diferencia.Entonces, si lo
cleanmgr
hace para cada archivo:Puede tomar hasta dos o tres segundos por operación, y si hace una operación por archivo, puede tomar cerca de una hora por cada mil archivos ... mi recuento de archivos fue un poco más de 40000 archivos, así que 40000 archivos / 8 horas procesan un archivo cada 1.3 segundos ... por otro lado, eliminarlos en un script (después de saber cuáles) toma menos de cinco minutos, eso es eliminar aproximadamente 133 por segundo ... diferencia.
¡Definitivamente el
cleanmgr
tiempo no es causado por eldeletion
mismo! Que mas esta haciendo ¡Por favor, M $ mejora esa velocidad!fuente
Una forma de mitigar este problema y acelerar un poco la fase de "Limpieza de actualizaciones de Windows" de "Limpieza de disco" es establecer temporalmente una mayor prioridad para el proceso TiWorker.exe durante la duración de la llamada actividad de "limpieza".
En el panel 'Detalles' del Administrador de tareas , busque
TiWorker.exe
y haga clic con el botón derecho para mostrar un menú emergente. Para 'Establecer prioridad, "elija" Por encima de lo normal ". Para mí, esto aumentó laTiWorker
actividad de la CPU, desde un promedio de alrededor del 16%, hasta su potencial total del 25% (en una máquina de 4 núcleos).Aparte de la aceleración minúscula, y posiblemente una buena sensación de logro, esto proporciona, hay poco que se pueda hacer, ya que aparentemente "Windows Update Cleanup" está codificado de una manera que, por alguna razón desconocida, procede archivo por archivo, haciendo que el trabajo en general sea horriblemente encuadernado en disco.
Y también, sepa que el proceso probablemente no esté colgado, y de hecho se completará algún día. Para verificar esto (y para distraerse aún más durante este molesto tiempo de espera), puede consultar la sección 'Actividad de disco' del Monitor de recursos (ejecute "resmon.exe").
fuente
Eliminar 20 archivos de 5mb de tamaño tomará más tiempo para eliminar que 10 archivos de 64mb de tamaño. Esto se debe a que cuando el sistema elimina archivos, realmente no los elimina (ya que el espacio vacío en una unidad puede estar hecho de bits de "ruido"), sino que sobrescribe la parte frontal que dice: "Un archivo comienza aquí" con galimatías y luego felizmente sobrescribirá eso y las siguientes partes más adelante cuando desee usar el espacio. En realidad, borrar es lo mismo que escribir de otra manera.
El problema con la limpieza del disco es que las cosas que limpia generalmente son MUCHOS archivos pequeños (cookies de Internet, archivos temporales, etc.). Como tal, escribe mucho más en el disco que muchas otras cosas, y puede tomar tanto tiempo como instalar algo nuevo, debido al volumen que se escribe en el disco.
fuente
Otra palabra de advertencia: parte de lo que lleva tiempo es que, al limpiar WinSxS, Disk Clean-up primero tiene que descomprimir muchos archivos. ¡De modo que el uso del disco aumenta en la primera parte de la limpieza!
fuente
Otra forma de acelerar el proceso es ejecutar el Liberador de espacio en disco durante aproximadamente 5 minutos. ¡Deténgalo, luego reinícielo y pasará en un santiamén! Además, Desfragmentar u optimizar su HDD / SSD de antemano acelerará las cosas, solo recuerde de-fragmentar / Optz nuevamente después de la limpieza.
fuente