Ejecuto un servidor virtual (alojado de forma remota) con Windows 2008 Server para un cliente. Inicialmente, tenía 10 GB de espacio. Durante el transcurso de unas pocas semanas, durante las cuales no se hizo nada en la máquina, excepto el trabajo normal utilizando un sistema de icket basado en la web, Windows comenzó a llenar su infame directorio "winsxs" tanto que al final, el disco duro estaba lleno y tuvimos que pedir otros 5 GB. Ahora, tres semanas después, estos 5 GB también han sido consumidos por winsxs, y nuevamente no puedo trabajar en la máquina. Winsxs ahora tiene 8 GB de tamaño, el resto del directorio de Windows 5 GB.
He encontrado varias fuentes en la web que describen el mismo problema. Aparentemente, Windows 2008 almacena todas las versiones de idioma para todos los archivos DLL que descarga en el proceso de actualización normal. Simplemente eliminar cosas allí se describe como mortalmente peligroso ya que contiene componentes vitales. No he encontrado ningún tipo de herramienta o instrucciones para identificar y eliminar aquellos archivos que ya no son necesarios.
¿Que puedo hacer? ¿Es este comportamiento normal y, si es así, cómo se gestionan otros servidores con espacio igualmente limitado? ¿Hay algo que pueda apagar o encender?
De los roles de servidor predefinidos, solo se activan los "Servicios de archivos" (o como se llame en inglés, es un servidor suizo). Además, he instalado Apache, mySQL y Subversion. Las actualizaciones automáticas están activadas.
Editar: el problema persiste.
Nota: Soy consciente de que el directorio WinSXS consiste principalmente en enlaces simbólicos y que los usuarios a menudo entran en pánico al ver su tamaño. Aún así, de 15 GB de espacio, tengo 1,5 MB utilizados por programas y datos, y no queda nada . Me alegra poder acceder a la maldita máquina. * Ya he liberado 1 GB de datos, que Windows Windows llenó en 24 horas. Es como en una película de terror. Lo que he intentado:
- Instalar SP2 (que viene con compcln.exe) no es una opción, ya que el espacio en disco no es suficiente para eso.
- No hay vsp1clean.exe en la máquina, probablemente porque SP1 ya se ha fusionado con el sistema. De hecho, no existe ningún archivo llamado * cln.exe en ninguna parte.
- No hay instantáneas. Las instantáneas no están activas.
- Por lo que puedo decir, no hay puntos de restauración del sistema activos.
- La única función de servidor activada es "servidor de archivos".
- La función estándar de "limpieza" (clic derecho en C: unidad) me ofrece unos desconcertantes 2 MB en contenido basura y archivos temporales de Internet.
- El uso de uno de los scripts de "limpieza winsxs" no es una opción para mí, todos se ven demasiado turbios. No puedo encontrar nada directamente de Microsoft que aborde este problema.
fuente
Respuestas:
El directorio WinSxS no ocupa casi el espacio informado por Explorer, ya que utiliza enlaces duros a archivos físicos, no a archivos reales. Explorer solo tiene problemas para informar el tamaño de los enlaces duros.
Este artículo sobre el espacio en disco (referenciado aquí http://aspoc.net/archives/2008/11/20/winsxs-disk-space-and-windows-7/ ) tiene una gran explicación en el directorio WinSxS.
En cuanto a su problema real de uso del disco: puede intentar ejecutar COMPCLN.EXE para ver si puede limpiar cualquier paquete de servicio antiguo y archivos de reparación, lo que debería ayudar un poco. También miraría cualquier directorio de registro para ver si hay algo más.
fuente
Yo estaba en el mismo barco que tú. Tuve 5 máquinas virtuales nuevas de 2008 y las estuve viendo constantemente requieren más y más espacio en disco durante el último año. Déjame ilustrar con windrstat.
Aquí hay una captura de pantalla de un nuevo servidor 2008 :
3,8 GB de directorio winsxs
Ahora aquí hay una captura de pantalla de un servidor de producción 2008 :
Directorio de 5.4GB winsxs
Finalmente, una captura de pantalla de un nuevo servidor 2008R2 : directorio de 5.4x winsxs
Por lo que puedo decir, no hay forma de truncar el directorio winsxs. WinSxS son las siglas de Windows Side-by-Side. En su intento de reducir los efectos del infierno de DLL (es decir, dependencias), Microsoft decidió mantener cada versión de cada DLL instalada en su sistema en el directorio winsxs.
Esto significa dos cosas (creo):
Si bien hay algunos enlaces duros en winsxs, los únicos enlaces duros deberían ser los de las DLL actuales. En otras palabras, los archivos DLL actuales que están activos en el sistema están vinculados de nuevo a esta carpeta winsxs.
Todas las versiones anteriores de las DLL todavía están disponibles y se respaldan en el directorio winsxs. Como puede ver en todos los ejemplos, si el directorio winsxs realmente fuera "en su mayoría enlaces duros", no habría forma de que ocupara más del 50% del uso actual de su disco. Ahora, incluso si fuera cierto que el directorio winsxs es "en su mayoría enlaces duros", el 50% de uso significaría que toda su unidad C: se volvió a vincular al directorio winsxs.
Lo intenté todo. Eliminar archivos antiguos, desinstalar parches, eliminar los directorios de parches "$". Todo.
Finalmente terminé haciendo crecer todas las particiones C: en todos mis servidores a 30 GB cada una. Esto solo será una solución temporal, ya que el directorio winsxs continuará creciendo. Sin embargo, buenas noticias, ya que la última versión de NTFS le permite hacer crecer sus particiones sin reiniciar. Que conveniente.
WinSxS no es solo un directorio molesto, es una nueva metodología para todos los desarrolladores de Windows. WinSxS no desaparecerá pronto. Los desarrolladores están utilizando WinSxS y dependen de que esté allí hasta que esté disponible una nueva metodología de archivo DLL o resolución de dependencia.
En cada nuevo cuadro de Windows 2008/7 / Vista siento que un C de 30 GB: es casi correcto. Suficiente espacio (por ahora) para parches, registros y algunas aplicaciones.
No puedo esperar hasta que alguien descubra todo esto y comience a reactivar las DLL de pre-parche con manifiestos falsos , que se convierten en vectores de ataque / explotación.
fuente
15 GB no serán suficientes en mi experiencia, especialmente si es una máquina de 64 bits con alguna actividad ...
Extender el disco VPS y luego la partición del sistema debería ser fácil sin tener que reinstalar nada, por costoso que sea. En primer lugar, ofrecer un disco de sistema de menos de 60 GB para un VPS de Windows Server moderno no parece pensado, incluso si ~ 30 GB podrían reducirlo por un tiempo: 7
La instalación de 32 bits eliminará un poco de sobrecarga, y la elección de un Server Core eliminará mucho. Mi servidor de archivos Core Server 2008 de 32 bits que ejecuta svnserve, dfs, servicio de impresión, etc. y se actualiza regularmente es de alrededor de 5 GB ... mientras que mi Server 2008 Standard de 64 bits que sirve aplicaciones web (asp.net y php usando IIS) ocupa 30 GB en este momento. Ambas métricas están excluyendo los almacenes de datos / particiones, por supuesto, solo el sistema de Windows, y ambos son solo ejemplos de que tengo discos del sistema Server 2008 de 64 bits que ocupan de 10 a 35 GB en este momento.
Cada herramienta, actualización o aplicación que instale hará crecer el directorio winsxs y desinstalar cosas no siempre tendrá ningún efecto en winsxs ya que el sistema puede pensar que esas herramientas utilizan esas dependencias.
fuente
Probablemente sea demasiado tarde para usted y solo se base en la experiencia de Vista, pero:
Mi 'cura' después de no encontrar respuestas satisfactorias fue eliminar brutalmente las carpetas más grandes (y no deseadas), por ejemplo:
Suponiendo que comience con una buena copia de seguridad (imagen), ¡pruébelo y vea!
fuente
Si es posible, puede intentar mover WinSXS a otra partición como solución alternativa. Que yo sepa, no hay forma de deshacerse del contenido de WinSXS. Esta pequeña cosita linda está en el corazón de la operación Vista / Win2008, así que ... No he escuchado nada mejor al moverla a otra partición.
Aquí hay un enlace a un blog que describe cómo hacerlo: haga clic en
Te sugiero que hagas una copia de seguridad completa (incluso mejor: una imagen) de toda tu partición C: antes de intentar el procedimiento. Tenga en cuenta que probé esto solo en Vista, no en Win2008 Server.
fuente
Si el principal culpable es WindowsUpdate, entonces diría que su única alternativa para comprar más espacio o realizar una cirugía de archivos del sistema es limitar el crecimiento causado por las actualizaciones de activación de Microsoft.
Dado que utiliza principalmente una plataforma de aplicaciones que no es de Microsoft, probablemente pueda prescindir del 90-95% de las actualizaciones "importantes" que se rechazan.
Por lo tanto, lo que puede hacer es desactivar las actualizaciones automáticas y luego ser MUY selectivo sobre qué actualizaciones "importantes" aplicar. Solo aplique aquellos que corrigen vulnerabilidades que comprometen DIRECTAMENTE su plan de seguridad. La mayoría de las actualizaciones "importantes" probablemente no se apliquen a su escenario de seguridad, y si lo hacen, probablemente pueda modificar su plan de seguridad para que no las tenga (por ejemplo, no use IE en el servidor, use servicios de archivos alternativos, ajuste la seguridad de la red) .
fuente
Si WinDirStat y el sistema operativo en sí (solo mirado en Mi PC) informan la misma cantidad de espacio utilizado, es irrelevante si no cuenta los tamaños como enlaces duros. Si el sistema operativo cree que no tiene espacio, ESTÁ FUERA DE ESPACIO.
Tengo este problema en un Storage Server 2008 y un DC (Server 2008). No se han instalado otros programas, excepto las actualizaciones de Windows en DC, ambos servidores consumen 15 GB de espacio en WinSXS. HP preinstaló el servidor de almacenamiento con 40 GB en C :, por lo que también estoy sufriendo este problema. Hasta 5 GB de espacio libre.
Esto se solucionó en Windows 8 / Server 2013 mediante el uso de DISM para limpiar las actualizaciones reemplazadas (dism.exe / online / cleanup-image / startcomponentcleanup), por lo que claramente este es un problema que reconocieron, desafortunadamente sin otra solución que la actualización para aquellos atrapados con 2008
fuente
En Windows Server 2008 R2 puede usar DISM para limpiar WinSxS, por supuesto, no podrá deshacer las actualizaciones después de hacer esto. Aquí hay una explicación: http://www.sqlskills.com/blogs/glenn/how-to-reclaim-disk-space-in-your-windowswinsxs-directory-on-windows-server-2008-r2-sp1/
En resumen, debe ejecutar el siguiente comando como administrador:
Sé que esta podría no ser una solución relevante para usted, ya que tiene Windows Server 2008 (no R2 aparentemente), pero encontré esta pregunta cuando busqué una solución para R2, por lo que podría ser útil para algunas personas.
fuente
Un par de sugerencias:
¿Dónde está tu archivo de intercambio?
Configure una máquina de prueba con el mismo software para ver si puede replicar el problema. Esto definitivamente no es normal, y lo único en lo que puedo pensar es que algo en esa caja está modificando constantemente una DLL (o algo así) y, por lo tanto, Windows está constantemente haciendo copias de seguridad.
15 GB está en el lado más bajo para una instalación de Windows 2008: mi unidad C: estándar para Windows 2008 es de 60 GB.
fuente
http://tech.xlab.si/2009/07/move-winsxs-folder/
Encontré este artículo pero nunca lo probé. Parece que hay una manera de moverse sobre la carpeta winsxs. si alguien puede intentar esto, por favor, hazlo y avísame
fuente
Los requisitos del sistema dados por Microsoft para Server 2008 son "Espacio en disco: mínimo 32 Gb o más".
http://www.microsoft.com/windowsserver2008/en/us/system-requirements.aspx
¿Por qué crees que puede funcionar cómodamente en la mitad de ese espacio?
fuente
Una opción para usar: si es solo un VPS viejo y barato que usa para cosas simples, entonces vale la pena habilitar la compresión NTFS en el disco o en carpetas específicas:
Esto podría exprimir algo de espacio fuera de la unidad. Los artículos dicen que es para XP pero son los mismos pasos en Win7 / 2008:
Cómo usar la compresión de archivos
fuente
Me he encontrado con el mismo problema. Seguramente WinSxs es en parte culpable ... Pero creo que el problema se debe en parte a herramientas como WinDirStat que cuentan los tamaños de archivos y uniones a archivos de la misma manera. Una unión es solo un puntero al archivo, no un duplicado de todos los bloques que componen el archivo.
He descubierto que VSS es un gran culpable de este problema. Use los siguientes comandos para ver si VSS está consumiendo demasiado espacio en su disco, reclame ese espacio o establezca un límite menor:
vssadmin list shadowstorage
vssadmin Eliminar ShadowStorage / For = C: / On = C:
vssadmin Redimensionar ShadowStorage / For = C: / On = C: / MaxSize = 20%
fuente