Windows 2008: Diretório WinSXS crescendo descontroladamente, bloqueando o servidor

60

Eu executo um servidor virtual (hospedado remotamente) com o Windows 2008 Server para um cliente. Inicialmente, ele tinha 10 GB de espaço. Durante algumas semanas - durante as quais o nada foi executado na máquina, exceto o trabalho normal usando um sistema de icket -, o Windows começou a preencher seu infame diretório "winsxs", tanto que No final, o disco rígido estava cheio e tivemos que pedir mais 5 GB. Agora, três semanas depois, esses 5 GB foram consumidos pelo winsxs também, e novamente não posso trabalhar na máquina. Winsxs é agora 8 GB grande, o resto do diretório do Windows 5 GB.

Eu encontrei várias fontes na web que descrevem o mesmo problema. Aparentemente, o Windows 2008 armazena todas as versões de idiomas para todas as DLLs que ele baixa no processo de atualização normal. Apenas a exclusão de material é descrita como mortalmente perigosa, pois contém componentes vitais. Não encontrei nenhum tipo de ferramenta ou instruções para identificar e remover os arquivos que não são mais necessários.

O que posso fazer? Esse comportamento é normal e, se é, como outros servidores com espaço igualmente limitado gerenciam? Há algo que eu possa desligar ou ligar?

Das funções de servidor pré-definidas, apenas "Serviços de arquivo" (ou o que quer que seja chamado em inglês, é um servidor suíço) é ativado. Além disso, eu instalei o Apache, mySQL e Subversion. Atualizações automáticas são ativadas.

Edit: o problema persiste.

Nota: Estou ciente de que o diretório WinSXS consiste principalmente de links simbólicos e que os usuários geralmente entram em pânico ao observarem seu tamanho. Ainda assim, com 15 GB de espaço, eu tenho 1,5 MB usado por programas e dados e nada restantes. Ainda bem que posso acessar a maldita máquina. * Eu já libertei 1 GB de dados, que foram preenchidos pelo Windows em 24 horas. É como num filme de terror. O que eu tentei:

  • A instalação do SP2 (que vem com o compcln.exe) não é uma opção, pois o espaço em disco não é suficiente para isso.
  • Não há vsp1clean.exe na máquina, provavelmente porque o SP1 já foi mesclado no sistema. Na verdade, não existe nenhum arquivo chamado * cln.exe em qualquer lugar.
  • Existem não cópias de sombra. As cópias de sombra não estão ativas.
  • Até onde eu sei, não há pontos de restauração do sistema ativos.
  • A única função de servidor ativada é "servidor de arquivos".
  • A função padrão de "limpeza" (clique com o botão direito do mouse na unidade C:) está me oferecendo 2 MB em conteúdo de lixo e arquivos temporários da Internet.
  • Usar um dos scripts "cleanup winsxs" não é uma opção para mim, todos eles parecem muito obscuros. Não consigo encontrar nada diretamente da Microsoft abordando esse problema.
por Pekka 웃 29.10.2009 / 13:54

13 respostas

22

O diretório WinSxS não ocupa quase o espaço relatado pelo Explorer, já que ele usa Hard Links para arquivos físicos, não para arquivos reais. O Explorer só tem problemas informando o tamanho dos links físicos.

Este artigo sobre Espaço em disco (aqui referenciado link ) tem uma ótima explicação no diretório WinSxS.

Quanto ao seu problema de uso de disco real - Você pode tentar executar COMPCLN.EXE para ver se pode limpar qualquer service pack antigo e arquivos de hot fix, o que deve ajudar bastante. Eu também olharia para quaisquer diretórios de registro para ver se há algo mais acontecendo.

    
por 29.10.2009 / 15:39
17

Eu estava no mesmo barco que você. Eu tinha 5 novíssimas VMs de 2008 e eu as observava constantemente exigir mais e mais espaço em disco no último ano. Deixe-me ilustrar com o windststat.

Aqui está uma captura de tela de um brand new 2008 server :

diretóriode3,8GBdowinsxs

Vejaaquiumacapturadeteladeumservidordeprodução2008:

Diretório de 5,4 GB do winsxs

Finalmente, uma captura de tela de um novo servidor 2008R2 : Diretóriode5,4GBdowinsxs

Peloqueeupossodizer,nãohácomotruncarodiretóriowinsxs.WinSxSsignificaWindowsSide-by-Side.EmsuatentativadereduzirosefeitosdaDLL(ouseja,Dependências),aMicrosoftdecidiumantertodasasversõesdetodasasDLLsjáinstaladasemseusistemanodiretóriowinsxs.

Issosignificaduascoisas(euacho):

  1. Emboraexistamalgunshardlinksnowinsxs,osúnicoshardlinksdevemserosdasDLLsatuais.Emoutraspalavras,asDLLsatuaisqueestãoativasnosistemasãovinculadasaessapastadowinsxs.

  2. TodasasversõesanterioresdasDLLsaindaestãodisponíveisesãoarmazenadasnodiretóriowinsxs.Comovocêpodeveremtodososexemplos,seodiretóriowinsxsrealmentefosse"na maioria das vezes hard links", não haveria como usar mais de 50% do uso atual do disco. Agora, mesmo se fosse verdade que o diretório winsxs é "na maioria das vezes hardlinks", 50% de uso significaria que toda a sua unidade C: foi ligada de volta ao diretório winsxs.

Eu tentei de tudo. Excluindo arquivos antigos, desinstalando patches, excluindo os diretórios de patch "$". Tudo.

Finalmente acabei crescendo todas as partições C: em todos os meus servidores para 30GB cada. Esta será apenas uma correção temporária, pois o diretório winsxs continuará a crescer. Boas notícias, porém, como a versão mais recente do NTFS permite que você cresça suas partições sem reiniciar. Quão conveniente.

O WinSxS não é apenas um diretório irritante, é uma nova metodologia para todos os desenvolvedores do Windows. WinSxS não vai desaparecer tão cedo. Os desenvolvedores estão usando o WinSxS e, dependendo dele, estarão lá até que uma nova metodologia de arquivamento de DLLs ou resolução de dependência esteja disponível.

Em cada nova caixa do Windows 2008/7 / Vista eu sinto que um C de 30GB está quase certo. Espaço suficiente (por enquanto) para patches, logs e alguns aplicativos.

Não posso esperar até que alguém descubra tudo isso e comece a reativar as DLLs anteriores ao patch com rogue-manifests , que se tornam vetores de ataque / exploração.

    
por 13.11.2009 / 17:10
5

15 GB não vão interferir na minha experiência, especialmente se for uma máquina de 64 bits com alguma atividade ...

Estender o disco VPS e, em seguida, a partição do sistema deve ser fácil sem ter que reinstalar nada, por mais caro que seja. Oferecer menos de 60GB de disco de sistema para um VPS Windows Server moderno não parece ser considerado em primeiro lugar, mesmo que ~ 30GB consiga cortá-lo por um tempo: 7

Ir para a instalação de 32 bits irá remover um pouco de sobrecarga, e indo para um núcleo do servidor irá remover muito. Meu servidor de arquivos Server Core 2008 de 32 bits que executa svnserve, dfs, serviço de impressão e assim por diante e é atualizado regularmente é de cerca de 5 GB ... enquanto meu Server 2008 Standard de 64 bits que atende aplicativos web (asp.net e php usando IIS) ocupa 30 GB agora. Ambas as métricas estão excluindo os armazenamentos de dados / partições, é claro, somente o sistema Windows, e ambos são apenas exemplos. Eu tenho discos do sistema Server 2008 de 64 bits que ocupam de 10 a 35 GB agora.

Cada ferramenta, atualização ou aplicativo que você instalar aumentará o diretório winsxs e a desinstalação nem sempre terá qualquer efeito sobre o winsxs, pois o sistema pode pensar que essas dependências são usadas por outras ferramentas.

    
por 15.11.2009 / 01:24
5

Provavelmente isso é tarde demais para você, e apenas com base na experiência do Vista, mas:

  1. Não acredite naqueles que dizem "seus links mais pesados, então a pasta não é tão grande quanto parece" - isso é verdade, mas se você ficou sem espaço em disco, ela era muito grande.
  2. A única 'cura' já sugerida é remover os aplicativos que adicionaram o inchaço à pasta - mas não há nenhuma maneira documentada que eu conheça para encontrar os culpados.
  3. Minha "cura" depois de não conseguir encontrar respostas satisfatórias foi remover brutalmente as maiores (e indesejáveis) pastas, por exemplo:

    • 6 versões de 'Microsoft natural language search', com ~ 300kB cada
    • Muitas fontes orientais que eu nunca usarei (às vezes 6 vns dessas, quase todas idênticas)
    • etc, etc.

Supondo que você comece com um bom backup (imagem), experimente e veja!

    
por 27.03.2011 / 18:51
4

Se for possível, você pode tentar mover o WinSXS para outra partição como solução alternativa. Que eu saiba, não há como se livrar do conteúdo do WinSXS. Essa coisinha bonitinha está no coração da operação do Vista / Win2008, então ... eu não ouvi nada melhor como mover para outra partição.

Aqui está um link para um blog descrevendo como fazê-lo: Clique

Eu sugiro que você faça um backup completo (melhor ainda: uma imagem) de toda a sua partição C: antes de tentar o procedimento. Lembre-se que eu tentei isso apenas no Vista, não no Win2008 Server.

    
por 13.11.2009 / 09:26
3

Se o principal culpado for o WindowsUpdate, então eu diria que sua única alternativa para comprar mais espaço ou realizar a cirurgia de arquivos do sistema é limitar o crescimento causado pelas atualizações felizes da Microsoft.

Como você usa principalmente uma plataforma de aplicativos que não seja da Microsoft, provavelmente você pode passar sem 90% a 95% das atualizações "importantes" que estão sendo empurradas para baixo.

Assim, o que você pode fazer é desativar as atualizações automáticas e, em seguida, ser MUITO seletivo sobre quais atualizações "importantes" devem ser aplicadas. Aplique somente aquelas que corrigem vulnerabilidades que comprometem DIRETAMENTE seu plano de segurança. A maioria das atualizações "importantes" provavelmente não se aplicam ao seu cenário de segurança e, se isso acontecer, você provavelmente poderá modificar seu plano de segurança para fazer sem elas (por exemplo, não usar o IE no servidor, usar serviços de arquivos alternativos, aumentar a segurança da rede) .

    
por 20.12.2009 / 07:30
3

Se o WinDirStat e o próprio sistema operacional (apenas sob o Meu Computador) estiverem reportando a mesma quantidade de espaço usado, isso é irrelevante se estiver confundindo os tamanhos como links físicos. Se o sistema operacional achar que você está sem espaço, VOCÊ ESTÁ FORA DO ESPAÇO.

Eu tenho esse problema em um Storage Server 2008 e um DC (Server 2008). Nenhum outro programa, exceto as atualizações do Windows, foi instalado no DC, ambos os servidores estão consumindo 15 GB de espaço no WinSXS. O servidor de armazenamento foi pré-instalado pela HP com 40 GB em C :, então também estou sofrendo com esse problema. Até 5 GB de espaço livre.

Isso foi corrigido no Windows 8 / Server 2013 usando o DISM para limpar atualizações substituídas (dism.exe / online / cleanup-image / startcomponentcleanup), portanto, claramente, esse é um problema que eles reconheceram, infelizmente sem nenhuma correção além de atualizar para aqueles presos com 2008.

    
por 11.04.2013 / 04:47
3

No Windows Server 2008 R2, você pode usar o DISM para limpar o WinSxS, claro que não será possível reverter as atualizações depois de fazer isso. Aqui está uma explicação: link

Em resumo, você precisa executar o seguinte comando como administrador:

DISM.exe /online /Cleanup-Image /spsuperseded

Eu sei que isso pode não ser uma solução relevante para você, já que você tem o Windows Server 2008 (aparentemente não R2), mas eu encontrei essa pergunta ao procurar uma solução para o R2, então pode ser útil para algumas pessoas.

    
por 14.07.2013 / 10:24
1

Algumas sugestões:

  • Onde está o seu arquivo de troca?

  • Configure uma máquina de teste com o mesmo software para ver se é possível replicar o problema. Isso definitivamente não é normal, e a única coisa em que consigo pensar é que algo nessa caixa está constantemente modificando uma DLL (ou algo assim) e, portanto, o Windows está constantemente fazendo backups dela.

O nível de 15 GB é muito baixo para uma instalação do Windows 2008 - minha unidade C: padrão para Windows 2008 é de 60 GB.

    
por 13.11.2009 / 13:39
1

link

Encontrou este artigo, mas nunca tentou .. parece que há uma maneira de se mover sobre a pasta winsxs. se nyone pode tentar isso, por favor, vá até lá e me avise

    
por 09.03.2011 / 12:50
1

Os requisitos de sistema da Microsoft para o Server 2008 são "Espaço em disco: mínimo de 32 Gb ou superior".

link

Por que você acha que pode funcionar confortavelmente na metade desse espaço?

    
por 27.03.2011 / 19:06
0

Uma opção para usar - se é apenas um VPS antigo e barato que você usa para coisas simples, então vale a pena ativar a compactação NTFS no disco ou em pastas específicas:

Isso pode extrair algum espaço da unidade. Os artigos dizem que é para o XP, mas são os mesmos passos no Win7 / 2008:

por 01.04.2011 / 07:47
0

Eu me deparei com o mesmo problema. Certamente WinSxs é parcialmente culpado ... Mas eu acho que o problema é parcialmente devido a ferramentas como WinDirStat contando os tamanhos de arquivos e junções de arquivos da mesma maneira. Uma junção é apenas um ponteiro para o arquivo, não uma duplicação de todos os blocos que compõem o arquivo.

Eu descobri que o VSS é um grande culpado neste problema. Use os comandos a seguir para ver se o VSS está consumindo muito espaço em disco, recupere esse espaço ou defina um limite menor:

lista de vssadmin shadowstorage

vssadmin Excluir ShadowStorage / For = C: / On = C:

vssadmin Redimensionar ShadowStorage / Para = C: / On = C: / MaxSize = 20%

    
por 10.01.2012 / 21:56