Eu executo um servidor virtual (hospedado remotamente) com o Windows 2008 Server para um cliente. Inicialmente, tinha 10 GB de espaço. Durante algumas semanas - durante as quais nada foi feito na máquina, exceto o trabalho normal usando um sistema de ticket baseado na Web -, o Windows começou a preencher tanto o seu infame diretório "winsxs" que, no final, o disco rígido foi danificado. cheio e tivemos que pedir mais 5 GB. Agora, três semanas depois, esses 5 GB também foram consumidos pelo winsxs e, novamente, não posso trabalhar na máquina. O Winsxs agora tem 8 GB de tamanho e o restante do diretório do Windows, 5 GB.
Encontrei várias fontes na web que descrevem o mesmo problema. Aparentemente, o Windows 2008 armazena todas as versões de idioma para todas as DLLs que ele baixa no processo de atualização normal. A simples exclusão de coisas é 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 eu posso fazer? Esse comportamento é normal e, se for, como outros servidores com espaço igualmente limitado gerenciam? Existe algo que eu possa desligar ou ligar?
Das funções de servidor predefinidas, apenas "Serviços de arquivo" (ou como é chamado em inglês, é um servidor suíço) é ativado. Além disso, eu instalei o Apache, mySQL e Subversion. As atualizações automáticas estã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 ver seu tamanho. Ainda assim, dos 15 GB de espaço, tenho 1,5 MB usados por programas e dados e nada resta. Estou feliz por poder acessar a maldita máquina. * Já liberei 1 GB de dados, que foram preenchidos pelo Windows Windows em 24 horas. É como em um filme de terror. O que eu tentei:
- Instalar o SP2 (que acompanha 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 incorporado ao sistema. De fato, não existe nenhum arquivo chamado * cln.exe em lugar algum.
- Não há cópias de sombra. Cópias de sombra não estão ativas.
- Pelo que sei, não há pontos de restauração do sistema ativos.
- A única função de servidor ativada é "servidor de arquivos".
- A função "limpeza" padrão (clique com o botão direito do mouse na unidade C:) está me oferecendo 2 MB desconcertantes em conteúdo de lixo e arquivos temporários da Internet.
- Usar um dos scripts de "limpeza winsxs" não é uma opção para mim, todos parecem muito obscuros. Não consigo encontrar nada diretamente da Microsoft abordando esse problema.
fonte
Respostas:
O diretório WinSxS não ocupa quase o espaço relatado pelo Explorer, pois usa Hard Links para arquivos físicos, não para arquivos reais. O Explorer apenas apresenta problemas ao informar o tamanho dos links físicos.
Este artigo sobre Espaço em Disco (mencionado aqui http://aspoc.net/archives/2008/11/20/winsxs-disk-space-and-windows-7/ ) tem uma ótima explicação no diretório WinSxS.
Quanto ao seu problema real de uso do disco - Você pode tentar executar o COMPCLN.EXE para verificar se é possível limpar algum service pack antigo e arquivos de hot fix, o que deve ajudar bastante. Gostaria também de olhar para todos os diretórios de log para ver se há algo mais acontecendo.
fonte
Eu estava no mesmo barco que você. Eu tinha 5 novas VMs de 2008 e estava assistindo a elas constantemente exigindo mais e mais espaço em disco no ano passado. Deixe-me ilustrar com windrstat.
Aqui está uma captura de tela de um novo servidor de 2008 :
Diretório winsxs de 3,8 GB
Agora, aqui está uma captura de tela de um servidor de produção 2008 :
Diretório winsxs de 5,4 GB
Finalmente, uma captura de tela de um novo servidor 2008R2 : diretório winsxs de 5,4 GB
Pelo que sei, não há como truncar o diretório winsxs. WinSxS significa Windows lado a lado. Na tentativa de reduzir os efeitos da DLL (ou seja, dependências), a Microsoft decidiu manter todas as versões de todas as DLL já instaladas no sistema no diretório winsxs.
Isso significa duas coisas (eu acho):
Embora existam alguns links físicos no winsxs, os únicos links físicos devem ser os das DLLs atuais. Em outras palavras, as DLLs atuais ativas no sistema são vinculadas novamente a esta pasta winsxs.
Todas as versões anteriores das DLLs ainda estão disponíveis e com backup no diretório winsxs. Como você pode ver em todos os exemplos, se o diretório winsxs realmente fosse "principalmente links físicos", não haveria maneira de ocupar mais de 50% do uso atual do disco. Agora, mesmo que seja verdade que o diretório winsxs é "principalmente hardlinks", o uso de 50% significaria que toda a unidade C: foi conectada novamente ao diretório winsxs.
Eu tentei de tudo. Excluindo arquivos antigos, desinstalando patches, excluindo os diretórios de patches "$". Tudo.
Finalmente, acabei aumentando todas as partições C: em todos os meus servidores para 30 GB cada. Isso 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 aumentar 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. O WinSxS não desaparecerá tão cedo. Os desenvolvedores estão usando o WinSxS e, dependendo disso, estarão disponíveis até que uma nova metodologia de arquivamento de DLL ou resolução de dependência seja disponibilizada.
Em todas as novas caixas do Windows 2008/7 / Vista, sinto que um C de 30GB está quase certo. Espaço suficiente (por enquanto) para patches, logs e alguns aplicativos.
Mal posso esperar até que alguém descubra tudo isso e comece a reativar DLLs anteriores ao patch com manifestos desonestos , que se tornam vetores de ataque / exploração.
fonte
15 GB não serão suficientes 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 precisar reinstalar nada, por mais caro que seja. Oferecer menos de 60 GB de disco do sistema para um VPS moderno do Windows Server não parece pensado em primeiro lugar, mesmo que ~ 30 GB possam reduzir por um tempo: 7
Ir para a instalação de 32 bits removerá um pouco de sobrecarga, e optar por um Server Core removerá muito. Meu servidor de arquivos Core Server Server 32 bits 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 da Web (asp.net e php usando o IIS) ocupa 30 GB agora. Ambas as métricas estão excluindo os armazenamentos / partições de dados, é claro, apenas o sistema Windows, e ambos são apenas exemplos. Tenho discos de sistema Server 2008 de 64 bits que ocupam algo entre 10 e 35 GB no momento.
Toda ferramenta, atualização ou aplicativo que você instala aumentará o diretório winsxs e a desinstalação de coisas nem sempre terá efeito no winsxs, pois o sistema pode pensar que essas dependências são usadas por outras ferramentas.
fonte
Provavelmente é tarde demais para você e apenas com base na experiência do Vista, mas:
Minha 'cura' depois de não encontrar respostas satisfatórias foi remover brutalmente as pastas maiores (e indesejadas), por exemplo:
Supondo que você comece com um bom backup (imagem), experimente e veja!
fonte
Se possível, você pode tentar mover o WinSXS para outra partição como uma solução alternativa. Que eu saiba, não há como se livrar do conteúdo do WinSXS. Essa coisinha fofa está no coração da operação do Vista / Win2008, então ... eu não ouvi nada melhor do que movê-la para outra partição.
Aqui está um link para um blog descrevendo como fazê-lo: Clique em
Eu sugiro que você faça um backup completo (ainda melhor: uma imagem) de toda a sua partição C: antes de tentar o procedimento. Lembre-se de que eu tentei isso apenas no Vista, não no Win2008 Server.
fonte
Se o principal culpado for o WindowsUpdate, eu diria que sua única alternativa para comprar mais espaço ou realizar uma cirurgia no arquivo do sistema é limitar o crescimento causado pelas atualizações ativadas pela Microsoft.
Como você usa principalmente uma plataforma de aplicativos que não é da Microsoft, é possível que 90-95% das atualizações "importantes" sejam empurradas para baixo.
Portanto, o que você pode fazer é desativar as atualizações automáticas e ser MUITO seletivo sobre quais atualizações "importantes" serão aplicadas. Aplique apenas aqueles que corrigem vulnerabilidades que comprometem DIRETAMENTE seu plano de segurança. A maioria das atualizações "importantes" provavelmente não se aplica ao seu cenário de segurança e, se o fizer, você provavelmente pode modificar seu plano de segurança para ficar sem elas (por exemplo, não use o IE no servidor, use serviços de arquivo alternativos, reforce a segurança da rede) .
fonte
Se o WinDirStat e o próprio sistema operacional (apenas visualizado em Meu computador) estão relatando a mesma quantidade de espaço usado, é irrelevante se estiver desmembrando os tamanhos como links físicos. Se o sistema operacional achar que você está sem espaço - VOCÊ ESTÁ SEM 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 controlador de domínio, os dois 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 as atualizações substituídas (dism.exe / online / cleanup-image / startcomponentcleanup). Portanto, é claro que esse é um problema que eles reconheceram, infelizmente sem outra correção além da atualização para aqueles que estão presos 2008.
fonte
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 disso. Aqui está uma explicação: http://www.sqlskills.com/blogs/glenn/how-to-reclaim-disk-space-in-your-windowswinsxs-directory-on-windows-server-2008-r2-sp1/
Em resumo, você precisa executar o seguinte comando como administrador:
Sei que essa pode não ser uma solução relevante para você, pois você possui o Windows Server 2008 (aparentemente não o R2), mas encontrei essa pergunta ao procurar uma solução para o R2, pelo que pode ser útil para algumas pessoas.
fonte
Algumas sugestões:
Onde está o seu arquivo de troca?
Configure uma máquina de teste com o mesmo software para ver se você pode replicar o problema. Definitivamente, isso não é normal, e a única coisa em que consigo pensar é que algo nessa caixa está constantemente modificando uma DLL (ou algo parecido) e, portanto, o Windows está constantemente fazendo backups dela.
Os 15 GB estão muito baixos para uma instalação do Windows 2008 - minha unidade C: padrão para Windows 2008 é de 60 GB.
fonte
http://tech.xlab.si/2009/07/move-winsxs-folder/
Encontrei este artigo, mas nunca tentei .. parece que há uma maneira de mover sobre a pasta winsxs. Se ninguém puder tentar isso, vá em frente e me avise
fonte
Os requisitos de sistema fornecidos pela Microsoft para o Server 2008 são "Espaço em disco: mínimo de 32 GB ou superior".
http://www.microsoft.com/windowsserver2008/en/us/system-requirements.aspx
Por que você acha que pode funcionar confortavelmente na metade desse espaço?
fonte
Uma opção a ser usada - se for apenas um VPS antigo barato que você usa para coisas simples, vale a pena ativar a compactação NTFS no disco ou em pastas específicas:
Isso pode comprimir algum espaço fora da unidade. Os artigos dizem que é para XP, mas são as mesmas etapas no Win7 / 2008:
Como usar a compactação de arquivos
fonte
Eu encontrei o mesmo problema. Certamente o WinSxs é parcialmente culpado ... Mas acho que o problema é parcialmente devido a ferramentas como o WinDirStat que contam os tamanhos de arquivos e junções para arquivos da mesma maneira. Uma junção é apenas um ponteiro para o arquivo, não uma duplicata de todos os blocos que compõem o arquivo.
Eu descobri que o VSS é um grande culpado nesse problema. Use os seguintes comandos para verificar se o VSS está consumindo muito espaço em disco, recupere esse espaço ou defina um limite menor:
lista vssadmin shadowstorage
vssadmin Excluir ShadowStorage / For = C: / Ativado = C:
vssadmin Redimensionar ShadowStorage / Para = C: / Ativado = C: / MaxSize = 20%
fonte