Windows 2008 : WinSXS 디렉토리가 제어 불가능하게 커져 서버를 차단 함


62

클라이언트에 대해 Windows 2008 Server와 함께 (원격 호스팅 된) 가상 서버를 실행합니다. 처음에는 10GB의 공간이있었습니다. 웹 기반의 icket 시스템을 사용하여 정상적인 작업을 제외하고는 컴퓨터에서 아무 것도 수행 하지 않은 몇 주 동안 Windows는 악명 높은 "winsxs"디렉토리를 너무 많이 채워서 결국 하드 디스크가 전체 5GB를 더 주문해야했습니다. 이제 3 주 후에이 5GB가 winsxs에 의해 소비되었으며 다시 컴퓨터에서 작업 할 수 없습니다. Winsxs는 이제 8GB, 나머지 Windows 디렉토리는 5GB입니다.

웹에서 동일한 문제를 설명하는 다양한 출처를 찾았습니다. 분명히 Windows 2008은 일반 업데이트 프로세스에서 다운로드 한 모든 DLL의 모든 언어 버전을 저장합니다. 중요한 구성 요소가 포함되어 있기 때문에 물건을 삭제하는 것은 치명적 위험으로 설명됩니다. 더 이상 필요없는 파일을 식별하고 제거하기위한 도구 나 지침을 찾지 못했습니다.

내가 무엇을 할 수 있을지? 이 정상적인 동작입니까? 그렇다면 공간이 똑같이 제한된 다른 서버는 어떻게 관리합니까? 끄거나 켤 수있는 것이 있습니까?

사전 정의 된 서버 역할 중에서 "파일 서비스"(또는 영어로 호출 된 모든 것이 스위스 서버 임) 만 활성화됩니다. 또한 Apache, mySQL 및 Subversion을 설치했습니다. 자동 업데이트가 활성화됩니다.

편집 : 문제가 지속됩니다.

참고 : WinSXS 디렉토리는 주로 심볼릭 링크로 구성되어 있으며 사용자는 종종 크기를보고 당황한다는 것을 알고 있습니다. 여전히 15GB의 공간 중 프로그램과 데이터에서 1.5MB를 사용하고 있으며 아무것도 남지 않았습니다 . 망할 기계에 접근 할 수있어서 다행입니다. * 24 시간 이내에 Windows Windows로 채워진 1GB의 데이터를 이미 확보했습니다. 공포 영화와 같습니다. 내가 시도한 것 :

  • 디스크 공간이 부족하여 SP2 (compcln.exe와 함께 제공)를 설치하는 것은 옵션이 아닙니다.
  • SP1이 이미 시스템에 병합 되었기 때문에 컴퓨터에 vsp1clean.exe가 없습니다. 실제로 * cln.exe라는 파일은 어디에도 없습니다.
  • 쉐도우 복사본 이 없습니다 . 쉐도우 복사본이 활성화되지 않았습니다.
  • 내가 알 수있는 한, 시스템 복원 지점이 활성화되어 있지 않습니다.
  • 활성화 된 유일한 서버 역할은 "파일 서버"입니다.
  • 표준 "정리"기능 (C : 드라이브를 마우스 오른쪽 버튼으로 클릭)은 2MB의 휴지통 내용과 임시 인터넷 파일을 당황스럽게합니다.
  • "정리 winsxs"스크립트 중 하나를 사용하는 것은 나에게는 옵션이 아니며, 모두 너무 그늘진 것처럼 보입니다. 이 문제를 해결하는 Microsoft에서 직접 찾을 수있는 것이 없습니다.

결국이 문제를 해결 했습니까?
UpTheCreek

@UpTheCreek 실제로 슬프게도 아닙니다! 이 공급 업체는 VPS에 5GB의 추가 공간을 제공했으며 Windows 운이 좋았습니다. 그러나 Windows 디렉토리는 여전히 20GB를 차지합니다. 계약이 곧 만료되고 호스팅 회사를 전환 할 것입니다.
Pekka 웃

답변:


24

WinSxS 디렉토리는 실제 파일이 아닌 실제 파일에 대한 하드 링크를 사용하므로 탐색기에서보고 한 공간을 거의 차지하지 않습니다. 탐색기에는 하드 링크의 크기를보고하는 데 문제가 있습니다.

디스크 공간 에 대한이 기사 ( http://aspoc.net/archives/2008/11/20/winsxs-disk-space-and-windows-7/ 참조 )에 WinSxS 디렉토리에 대한 자세한 설명이 있습니다.

실제 디스크 사용 문제와 관련하여 COMPCLN.EXE를 실행하여 이전 서비스 팩과 핫픽스 파일을 정리할 수 있는지 확인하면 상당히 도움이됩니다. 또한 로깅 디렉토리에서 다른 일이 있는지 확인합니다.


이것은 잘 들리지만 Windows 디렉토리는 실제로 12GB 이상을 소비하는 것으로 보입니다 (15GB 공간, 프로그램 및 작업 데이터는 2.5GB를 차지하며 공간이 남아 있지 않습니다). Compcln.exe는 2008 년에 존재하지 않습니다. 비슷한 명령을 아는 사람이 있습니까?
Pekka 웃

아마도 W2K8 SP2의 경우 : news.softpedia.com/news/...
Christopher_G_Lewis

SP2는 흥미롭게 들리지만 서버가 가득 차서 설치할 수도 없습니다. 제공자에게 며칠 동안 추가 공간을 요청했지만 과거에는 그다지 도움이되지 않았습니다. 이것은 실제로 문제가되고 심각한 문제를 일으 킵니다. 현상금을 열고 스크린 샷을 추가하고 있습니다.
Pekka 웃 21. 17.

컴퓨터의 이미지를 다시 만들고 업데이트를 실행하는 것이 옵션이 아니라고 생각합니다.
blueberryfields

모든 것을 설정하기 위해 많은 노력을 기울 였기 때문에 가장 마지막 수단으로 만 사용했을 것입니다. 아마도 해결할 것입니다.
Pekka 웃

18

나는 당신과 같은 보트에있었습니다. 2008 년에 5 개의 새로운 VM이 있었으며 작년에 점점 더 많은 디스크 공간이 필요하다는 것을 지켜보고있었습니다. windrstat로 설명하겠습니다.

새로운 2008 서버 의 화면 캡처는 다음과 같습니다 .

대체 텍스트 3.8GB winsxs 디렉토리

다음은 프로덕션 2008 서버 의 화면 캡처입니다 .

대체 텍스트 5.4GB winsxs 디렉토리

마지막으로 새로운 2008R2 서버 의 화면 캡처 : 대체 텍스트 5.4GB winsxs 디렉토리

내가 알 수 있듯이 winsxs 디렉토리를 자르는 방법은 없습니다. WinSxS는 Windows Side-by-Side를 나타냅니다. DLL 지옥 (예 : 종속성)의 영향을 줄이기 위해 Microsoft는 시스템에 설치된 모든 DLL의 모든 버전을 winsxs 디렉토리에 유지하기로 결정했습니다.

이것은 두 가지를 의미합니다 (제 생각에는).

  1. winsx에는 하드 링크가 있지만 현재 DLL의 하드 링크 만 있어야합니다. 다시 말해, 시스템에서 활성화 된 현재 DLL은이 winsxs 폴더로 다시 연결됩니다.

  2. 이전 버전의 모든 DLL을 계속 사용할 수 있으며 winsxs 디렉토리에 백업됩니다. 모든 예제에서 볼 수 있듯이 winsxs 디렉토리가 실제로 "주로 하드 링크"인 경우 현재 디스크 사용량의 50 % 이상을 차지할 수있는 방법이 없습니다. winsxs 디렉토리가 "주로 하드 링크"인 것이 사실이더라도, 50 % 사용은 전체 C : 드라이브가 winsxs 디렉토리로 다시 링크되었음을 의미합니다.

나는 모든 것을 시도했다. 오래된 파일 삭제, 패치 제거, "$"패치 디렉토리 삭제. 모두.

마지막으로 모든 서버의 모든 C : 파티션을 각각 30GB로 늘 렸습니다. winsxs 디렉토리가 계속 커지므로 이는 일시적인 수정일뿐입니다. 하지만 최신 버전의 NTFS를 사용하면 재부팅하지 않고도 파티션을 확장 할 수 있습니다. 얼마나 편리한 지.

WinSxS는 성가신 디렉토리 일뿐만 아니라 모든 Windows 개발자에게 새로운 방법론입니다. WinSxS는 곧 사라지지 않을 것입니다. 개발자는 WinSxS를 사용하고 있으며 DLL 보관 또는 종속성 해결에 대한 새로운 방법론을 사용할 수있을 때까지 여기에 있습니다.

모든 새 Windows 2008 / 7 / Vista 상자에서 나는 30GB C가 거의 맞다고 생각합니다. 패치, 로그 및 몇 가지 응용 프로그램을위한 충분한 공간 (현재)입니다.

누군가 가이 모든 것을 알아낼 때까지 기다릴 수 없으며 rogue-manifests 로 패치 전 DLL을 다시 활성화하기 시작 하여 공격 / 취약 경로가됩니다.


1
고마워, WinSXS를 슬리밍하는 기적의 방법이 나타나지 않는다면, 나는 이것이 유일한 사람이 아니라는 것을 알려주기 위해이 대답을 받아 들일 것입니다. 해결책이없는 것 같습니다. 외부 유료 호스팅이므로 30GB로 업그레이드하는 것은 정당화하기 어렵습니다. 어쩌면 2003 년으로 다운 그레이드 할 것입니다.하지만 그 소리는 어리석은 소리입니다.
Pekka 웃

1
그래, 나도 이것에 너무 흥분하지 않습니다. winsxs는 하드 링크 모음이 아닌 것 같습니다. 오히려 나머지 시스템에 하드 링크를 투사하지만 그것에 대해서는 약간의 의견 차이가있는 것 같습니다. winvistaclub.com/f16.html ...
Joseph Kern

또한 예를 위해 사용한 서버에서 서버 역할을 사용할 수 없습니다. 프로덕션 서버는 Apache Tomcat 서버입니다. 드라이브 공간을 찾는 데 사용한 프로그램은 windirstat.info입니다.
Joseph Kern

5
MS는 최소 디스크 요구 사항으로 상태 (32)에게 GB를 수행합니다 microsoft.com/windowsserver2008/en/us/system-requirements.aspx
Christopher_G_Lewis

5

15GB는 내 경험에서, 특히 약간의 활동이있는 64 비트 기계 인 경우에는 그것을 깎지 않을 것입니다 ...

VPS 디스크를 확장 한 다음 시스템 파티션을 쉽게 다시 설치할 필요없이 비용이 많이 들지 않습니다. 최신 Windows Server VPS에 60GB 미만의 시스템 디스크를 제공하는 것은 ~ 30GB가 잠시 동안 잘라낼 수 있어도 처음부터 생각하지 못하는 것 같습니다.

32 비트 설치를하면 약간의 오버 헤드가 제거되고 Server Core를 사용하면 많은 문제가 해결됩니다. svnserve, dfs, print serving 등을 실행하고 정기적으로 업데이트되는 32 비트 Server 2008 Core 파일 서버는 약 5GB입니다 ... 웹 응용 프로그램을 서비스하는 64 비트 Server 2008 Standard (IIS를 사용하는 asp.net 및 php) 지금은 30GB를 차지합니다. 이 두 가지 지표는 물론 데이터 저장소 / 파티션을 제외하고 Windows 시스템 만 제외하고 둘 다 64 비트 Server 2008 시스템 디스크를 보유하고 있으며 현재 10에서 35GB 사이의 모든 것을 차지합니다.

설치하는 모든 도구, 업그레이드 또는 응용 프로그램은 winsxs 디렉토리를 증가 시키며 시스템을 제거하는 것이 시스템이 다른 도구에 의해 사용되는 것으로 생각할 수 있기 때문에 winsxs에 영향을 미치지 않습니다.


5

이것은 아마도 당신에게 너무 늦었고, Vista 경험에 근거한 것이지만,

  1. '주로 하드 링크이므로 폴더가 표시된 것만 큼 크지 않다'고 말하는 사람들을 믿지 마십시오. 이것은 사실이지만 디스크 공간이 부족하면 너무 큽니다.
  2. 이제까지 제안 된 유일한 '치료법'은 폴더에 팽창을 추가 한 응용 프로그램을 제거하는 것입니다. 그러나 범인을 찾는 방법은 문서화되어 있지 않습니다.
  3. 만족스러운 답변을 찾지 못한 후의 '치료'는 가장 큰 (그리고 원치 않는) 폴더를 잔인하게 제거하는 것입니다.

    • 각각 ~ 300kB의 'Microsoft 자연어 검색'6 가지 버전
    • 내가 사용하지 않을 많은 동양 글꼴 (때로는 6 vns, 대부분 동일)

좋은 백업 (이미지)으로 시작한다고 가정하고 시도해보십시오!


4

가능한 경우 해결 방법으로 WinSXS를 다른 파티션으로 이동할 수 있습니다. 내 지식으로는 WinSXS의 내용을 제거 할 방법이 없습니다. 이 귀여운 작은 것들이 Vista / Win2008 작업의 핵심이므로, 다른 파티션으로 옮기는 것만 큼 좋은 소식은 듣지 못했습니다.

방법에 대해 설명하는 블로그 링크는 다음과 같습니다. 클릭

절차를 시도하기 전에 전체 C : 파티션의 전체 백업 (더 나은 : 이미지)을 수행하는 것이 좋습니다. Win2008 Server가 아닌 Vista에서만이 작업을 시도했음을 명심하십시오.


좋은 생각이지만 내 경우 (이것은 대체 스토리지가없는 VPS입니다) 불행히도 옵션이 아닙니다.
Pekka 웃

--- 그리고 같은 이유로 이미지를 만드는 것은 쉽지 않습니다. 그렇지 않으면 이미지를 만들고 추가 검사를 위해 내 컴퓨터에서 실행하려고 시도합니다.
Pekka 웃

3

주요 원인이 WindowsUpdate 인 경우 더 많은 공간을 구입하거나 시스템 파일 수술을 수행하는 유일한 대안은 Microsoft의 최신 업데이트로 인한 성장을 제한하는 것입니다.

Microsoft 이외의 응용 프로그램 플랫폼을 주로 사용하기 때문에 "중요한"업데이트 중 90-95 %가 다운되지 않고 수행 될 수 있습니다.

따라서 자동 업데이트를 비활성화 한 다음 적용 할 "중요"업데이트를 매우 선택적으로 수행 할 수 있습니다. 보안 계획을 직접적으로 손상시키는 취약점을 패치하는 취약점 만 적용하십시오. 대부분의 "중요한"업데이트는 보안 시나리오에 적용되지 않을 수 있으며 업데이트가없는 경우 보안 계획을 수정하지 않고 수행 할 수 있습니다 (예 : 서버에서 IE를 사용하지 않거나 대체 파일 서비스 사용, 네트워크 보안 강화) .


3

WinDirStat와 OS 자체 (내 컴퓨터 아래에 표시)가 사용 된 공간과 동일한 양의 공간을보고하는 경우 크기가 하드 링크로 잘못 계산되면 관련이 없습니다. OS에서 공간이 부족하다고 생각하면 공간이 부족한 것입니다.

Storage Server 2008 및 DC (Server 2008)에서이 문제가 있습니다. 다른 프로그램은 없지만 Windows 업데이트가 DC에 설치되었으며 두 서버 모두 WinSXS에서 15GB의 공간을 소비합니다. 스토리지 서버는 HP에 C : 40GB로 사전 설치되어 있으므로이 문제로 어려움을 겪고 있습니다. 최소 5GB의 여유 공간.

이는 DISM을 사용하여 대체 된 업데이트 (dism.exe / online / cleanup-image / startcomponentcleanup)를 정리하여 Windows 8 / Server 2013에서 수정되었으므로이 문제는 불행히도이 문제가 발생한 사용자를위한 업그레이드 이외의 다른 해결 방법으로는 인정하지 않는 문제입니다. 2008.


3

Windows Server 2008 R2에서는 DISM을 사용하여 WinSxS를 정리할 수 있습니다. 물론이 작업을 수행 한 후에는 업데이트를 롤백 할 수 없습니다. 설명은 다음과 같습니다. http://www.sqlskills.com/blogs/glenn/how-to-reclaim-disk-space-in-your-windowswinsxs-directory-on-windows-server-2008-r2-sp1/

요약하면 관리자 권한으로 다음 명령을 실행해야합니다.

DISM.exe /online /Cleanup-Image /spsuperseded

Windows Server 2008 (R2 아님)이 있기 때문에 이것이 관련 솔루션이 아닐 수도 있지만 R2 솔루션을 찾을 때이 질문을 발견하여 일부 사람들에게 유용 할 수 있습니다.


이렇게하면 나중에 제공되는 핫픽스의 파일이 아닌 사전 sp1 파일 만 제거됩니다.
휴 버트 Kario

1

몇 가지 제안 :

  • 스왑 파일은 어디에 있습니까?

  • 동일한 소프트웨어로 테스트 시스템을 설정하여 문제점을 복제 할 수 있는지 확인하십시오. 이것은 분명히 정상이 아니며, 내가 생각할 수있는 유일한 것은 해당 상자에있는 DLL이 지속적으로 DLL (또는 이와 유사한 것)을 수정하고 있기 때문에 Windows가 지속적으로 백업하는 것입니다.

Windows 2008 설치의 경우 15GB가 매우 적습니다 .Windows 2008 빌드 용 표준 C : 드라이브는 60GB입니다.


15GB는 가상 호스팅 제공 업체의 패키지 크기이며 모든 확장 (10GB에서 시작)은 매우 비쌉니다. 스왑 파일을 다른 곳으로 옮길 수없는 이유이기도합니다.
Pekka 웃

오, 잊어 버렸습니다 : 같은 이유로 머신을 복제하는 것은 쉽지 않습니다. 다른 것이 효과가 없다면 최후의 수단이 될 것입니다.
Pekka 웃

따라서 공급자를 변경하십시오.
TomTom


1

Server 2008에 대한 Microsoft의 시스템 요구 사항은 "디스크 공간 : 최소 32Gb 이상"입니다.

http://www.microsoft.com/windowsserver2008/en/us/system-requirements.aspx

그 공간의 절반에서 편안하게 달릴 수 있다고 생각하는 이유는 무엇입니까?


2008 년 서버가 사전 설치된 10GB 패키지 인 대규모 호스팅 제공 업체로부터 VPS 솔루션을 임대하고 있습니다. 나는 그들이 어떻게 든 이것을 제공해야한다고 가정합니다. 대규모 공급자는 10GB 또는 20GB Windows 패키지를 가지고 있습니다 (예 : bit.ly/h0AZsP 참조) . 나는 제공자에게 내 것이 괴물 사건이라고 들었다
Pekka 웃

실수로 Server 2008 R2 SP1 요구 사항에 연결했습니다. Server 2008에는 최소 8Gb ( microsoft.com/latam/windowsserver2008/sysreqs.mspx) 가 필요 하지만 여전히 40Gb를 권장합니다.
TessellatingHeckler

링크 주셔서 감사합니다. 그러나 OS가 사이에 업그레이드 되었을 있습니다-조사하겠습니다
Pekka 웃

0

사용하는 한 가지 옵션-간단한 것들에 사용하는 값싼 오래된 VPS라면 디스크 나 특정 폴더에서 NTFS 압축을 활성화하는 것이 좋습니다.

드라이브에서 공간이 부족할 수 있습니다. 이 기사는 XP에 대한 내용이지만 Win7 / 2008의 동일한 단계입니다.


0

나는 같은 문제에 부딪쳤다. 분명히 WinSxs는 부분적으로 책임이 있습니다 ...하지만 문제는 부분적으로 WinDirStat와 같은 도구가 파일의 크기를 계산하고 파일에 대한 접합을 같은 방식으로 인해 발생한다고 생각합니다. 접합은 파일을 가리키는 포인터이며 파일을 구성하는 모든 블록을 복제하지는 않습니다.

VSS가이 문제에서 더 큰 범인이라는 것을 알았습니다. 다음 명령을 사용하여 VSS가 디스크 공간을 너무 많이 소비하고 있는지, 해당 공간을 회수하거나, 더 작은 한계를 설정하십시오.

vssadmin 목록 섀도 스토리지

vssadmin ShadowStorage 삭제 / For = C : / On = C :

vssadmin 크기 조정 ShadowStorage / For = C : / On = C : / MaxSize = 20 %

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.