¿Cómo puedo visualizar el espacio en el disco duro con millones de archivos?

18

Tenemos un disco duro de 600 Gigas y casi lleno. Se ha llenado con 18.501.765 archivos (en su mayoría pequeñas imágenes de 19k) y 7.142.132 carpetas. También es muy difícil descubrir dónde se ha ido exactamente todo el espacio. Nuestros procedimientos regulares de limpieza no están despejando suficiente espacio, lo que significa que tenemos que mirar esta unidad como un todo y determinar qué hay ahí fuera y qué se puede mover o quitar. Hemos probado varias aplicaciones y hasta ahora han explotado o simplemente se han ejecutado durante una increíble cantidad de tiempo.

información del servidor

  • Sistema operativo: Windows Server 2003
  • Sistema de archivos: NTFS

Solución

Space ObServer pudo leer 18.501.765 archivos y 7.142.132 carpetas sin ocupar casi nada de memoria. Estoy seguro de que esto se debe principalmente al hecho de que utiliza un servidor SQL para almacenar todos los datos. Desafortunadamente, es el más caro de todos los productos a $ 259.95 por servidor.

Soluciones Intentadas

Durante mi investigación probé varias soluciones diferentes, tanto de pago como gratuitas. Seguí una lista de los productos que probé a continuación para información de todos.

Software libre

Software de pago

Actualizaciones

Actualización n. ° 1 : el servidor que intento analizar tiene 2 GB de RAM y la mayoría de los productos que intento parecen intentar mantener la información del archivo / carpeta en la memoria. Esto tiende a agotarse demasiado rápido con 18.501.765 archivos y 7.142.132 carpetas.

Actualización n. ° 2 : Parece que los desarrolladores de WinDirStat se involucraron lo suficiente como para decirnos que puede compilarse con menos de 64 bits. Eso le da más memoria para trabajar, pero no estoy seguro de si será suficiente a menos que puedan persistir en el disco.

Nathan Palmer
fuente
Que sistema operativo
Wesley
Es Windows Server 2003. Edité la publicación para mostrar eso ahora.
Nathan Palmer
¿Alguno de estos es completamente gratuito, shareware o de código abierto?
Maslow
Es amable de su parte informarnos de esa manera acerca de lo que ha fallado, se está ejecutando y está pendiente. Me da buenas ideas
Wesley
2
No hay problema. Pensé que sería una buena información, ya que siento que estamos lidiando con un número de archivos con los que las compañías no suelen trabajar a diario. Además, acabo de actualizar con categorías para Free and Pay.
Nathan Palmer

Respuestas:

6

Asumiendo que su sistema operativo es Windows ...

De cualquier forma que lo corte, tabular millones de archivos siempre llevará mucho tiempo y estará restringido por la E / S del disco. Recomiendo TreeSize Professional . O tal vez SpaceObServer . También puedes probar la versión gratuita de TreeSize.

Wesley
fuente
Estoy de acuerdo. Pero esos dos productos no los he probado, así que lo echaré un vistazo.
Nathan Palmer
5

Definitivamente pruebe WinDirStat : brinda una visualización fantástica del uso del disco al representar cada archivo como un rectángulo dibujado a escala, codificado por color por tipo de archivo. Haga clic en cualquier elemento de la visualización y lo verá en el árbol de directorios.

La compilación estándar de 32 bits está limitada a 10 millones de archivos y 2 GB de uso de RAM, pero el código fuente se compilará con éxito como una aplicación de 64 bits. El hecho de que el servidor en cuestión solo tenga 2 GB de RAM puede ser problemático en este caso específico, pero la mayoría de los servidores con un número tan grande de archivos tendrán mucha más RAM.

Edición n. ° 1: Lamento haber descubierto que, cuando se probó en un volumen de 4 TB que contiene millones de archivos, WinDirStat Portable se bloqueó después de indexar alrededor de 6,5 millones de archivos. Es posible que no funcione para la pregunta original si la unidad contiene más de 6 millones de archivos.

Edición n. ° 2: la versión completa de WinDirStat se bloquea con 10 millones de archivos y se usan 1,9 GB

Edición n. ° 3: me puse en contacto con los desarrolladores de WinDirStat y: (1) están de acuerdo en que esto fue causado por las limitaciones de uso de memoria de la arquitectura x86, y (2) mencioné que se puede compilar como 64 bits sin errores. Más pronto.

Edición n. ° 4: La prueba de una compilación de WinDirStat de 64 bits fue exitosa. En 44 minutos, indexó 11.4 millones de archivos y consumió 2.7 GB de RAM.

Skyhawk
fuente
Puede valer la pena probar la versión normal, ya que es posible que el entorno portátil haya creado una restricción inesperada. No estoy en condiciones de probar eso yo mismo. windirstat.info
John Gardeniers
De hecho, la versión normal muere con más de 10 millones de archivos y 1.9 GB de uso de RAM. Sospecho que no puede asignar> 2 GB. Me sorprende que use tanta RAM (casi 200 bytes por archivo contado), pero, de nuevo, crecí en una era en la que los bytes individuales eran mucho más valiosos de lo que son hoy ...
Skyhawk
Yo uso mucho WinDirStat. Desafortunadamente, simplemente no se corta cuando ingresas a una gran cantidad de archivos.
Nathan Palmer el
Me interesaría saber si los desarrolladores de WinDirStat vuelven con algo. RAM va a ser una restricción para mí en 32 bits o 64 bits.
Nathan Palmer
1
No hay una versión oficial, pero puedo enviarle una versión no oficial; obviamente, sería complicado crear la suya propia si no tiene Visual Studio. ([email protected] me alcanza)
Skyhawk
4

Regularmente uso FolderSizes en varias unidades de 1TB con varios millones de archivos sin problemas.

joeqwerty
fuente
Increíble. No sabía sobre eso.
Wesley
Excelente. Lo probaré.
Nathan Palmer
3

+1 para los productos TreeSize, pero ...

Su oración sobre "no limpiar suficiente espacio" me hace preguntarme: ¿podría haberse quedado sin espacio reservado NTFS MFT? Si el sistema de archivos toma más espacio MFT del que se asignó inicialmente, no se devuelve al espacio de archivos normal y no se muestra en las operaciones de desfragmentación.

http://support.microsoft.com/kb/174619

"Los volúmenes con una pequeña cantidad de archivos relativamente grandes agotan primero el espacio no reservado, mientras que los volúmenes con una gran cantidad de archivos relativamente pequeños agotan primero el espacio de la zona MFT. En cualquier caso, la fragmentación de la MFT comienza a tener lugar cuando una región o el otro se llena. Si el espacio no reservado se llena, el espacio para los archivos y directorios del usuario comienza a asignarse desde la zona MFT que compite con la MFT por la asignación. Si la zona MFT se llena, el espacio para nuevas entradas MFT se asigna desde el resto de el disco, compitiendo nuevamente con otros archivos ".

AndyN
fuente
Eso parece algo bueno para verificar. Lamentablemente, no podemos ver el tamaño de la MFT porque la desfragmentación no se analizará sin un CHKDSK y CHKDSK está fallando actualmente con "Se produjo un error no especificado".
Nathan Palmer
3
  1. discos compactos \
  2. dir / s> out.txt
  3. ¡maricón! La magia sucede; o aparece un hacker perl
  4. Resultados!

Seriamente. He hecho esto con 5 o 6 millones de archivos; No estoy seguro de lo que está buscando exactamente, pero un buen lenguaje de secuencias de comandos se lo comerá.

SqlACID
fuente
Soo ... ¿qué sucede en el paso 3 ... suponiendo que no aparezca un hacker perl?
Nathan Palmer el
¿Puedes publicar más información sobre lo que necesitas? ¿Los archivos más grandes? ¿Los directorios más grandes? ¿Necesita información de fecha / hora? ¿Es una necesidad única o recurrente?
SqlACID
Por ahora es una vez. Necesito saber qué directorios son los más grandes (dir + hijos) pero necesitaré ir a algunos directorios antes de que esa información sea válida. Luego, tendré que desglosar los archivos por fecha para poder ver los archivos recientes y los antiguos.
Nathan Palmer el
3

Normalmente no soy un usuario de Windows, pero estoy al tanto de la existencia de Cygwin. :-)

Si funciona lo suficientemente bien, algo así como

du -m /your/path | sort -nr | head -n 50

o tal vez en Cygwin

du C:\ | sort -nr | head -n 50

De todos modos, deberían imprimir los 50 directorios más grandes (tamaños en megabytes).

Janne Pikkarainen
fuente
2

Encontré algunos problemas con Spacemonger y al buscar una utilidad que podría transferir o ejecutar fácilmente desde una memoria USB: Space Sniffer resultó ser muy versátil en ese sentido, y manejó volúmenes de varios terabytes con facilidad.


fuente
volúmenes de varios terabytes con cuántos archivos? Parece que nuestro principal problema no es cuánto espacio se usa sino cuántos archivos puede manejar el programa. La mayoría se está asfixiando con 10 millones.
Nathan Palmer
No tengo un servidor con más de unos pocos millones de archivos para experimentar, así que no podría responder con confianza su pregunta de 10 millones de archivos; mi única sugerencia sería que con estas herramientas pueda establecer la profundidad del directorio en la que se visualiza: encuentre el el medio feliz y luego profundice en la carpeta que necesita, también debería ahorrar tiempo haciendo la visualización.
1

du -s se puede usar en caso de necesidad y se ejecutará todo el tiempo que sea necesario.

Ignacio Vazquez-Abrams
fuente
Gracias. Lo comprobaré la próxima vez que esté en un sistema * ix.
Nathan Palmer
... eh? gnuwin32.sourceforge.net/packages/coreutils.htm
Ignacio Vazquez-Abrams
No me di cuenta de que estaba disponible en Windows. Lo comprobaré. Gracias.
Nathan Palmer
0

Con respecto a la tabla mft, desde la parte posterior de mi cabeza me parece recordar que jkdefrag, la versión original de código abierto, proporcionó una vista de disco muy precisa que incluía diferentes colores para las áreas mft. Creo que lo usé una vez antes para una estimación general del tamaño mft y la fragmentación.

Tampoco le importa chdsk.

¿Podría intentar eso?

deploymonkey
fuente
Le di una oportunidad. Cuando ejecuto el análisis, sufre el mismo destino que la mayoría de estos otros programas. Demasiados archivos / carpetas almacenados en la memoria.
Nathan Palmer
Perdón por leer eso. Parece un problema de plataforma. Tengo otra sugerencia: refleje el disco (imagen de bits, imagen de software o espejo de hardware) sin importar cómo, rompa el espejo y coloque la copia bajo análisis forense en otra plataforma, por ejemplo. linux / nix. Esto ha consumido suficiente tiempo para garantizar el costo de una unidad espejo en relación con la cantidad de tiempo de trabajo invertido.
deploymonkey
0

He usado el analizador de uso de disco: Baobab en Linux usando su función de escaneo remoto en el servidor de Windows. Sin embargo, no sé cuáles son sus límites.

Fedora LiveCD contiene Baobab. Arrancarlo en cualquier computadora en su LAN.

Todo es gratis, como en la cerveza y en el discurso. También para uso comercial.

Tometzky
fuente