Computer >> 컴퓨터 >  >> 시스템 >> Windows 7

Windows 업데이트 오류 0x80244022 해결 가이드 – IIS WsusPool 메모리 제한 조정

어느 고객사에서 Windows 7 클라이언트에 업데이트를 배포하는 과정에서 흥미로운 문제가 발생했습니다. 해당 환경은 System Center Configuration Manager(SCCM)에 통합된 WSUS 서버, 정확히는 Software Update Point(SUP)를 통해 업데이트를 배포하고 있었습니다. SCCM 서버는 Windows Server 2008 R2로 운영 중이었으며, WSUS 버전은 WSUS 3.0 SP2였습니다. 그리고 약 2,000대의 Windows 7 SP1 클라이언트 PC에 업데이트를 적용해야 하는 상황이었습니다.

그런데 클라이언트 컴퓨터들이 Software Update Point에서 업데이트를 전혀 받지 못했고, 로그에는 0x80244022 오류가 반복해서 기록되고 있었습니다.

클라이언트 측 오류 로그 확인

클라이언트의 WUAhandler.log에는 다음과 같은 오류가 남아 있었습니다.

OnSearchComplete - Failed to end search job. Error = 0x80244022.
Scan failed with error = 0x80244022.

WindowsUpdate.log에도 여러 개의 오류가 기록되어 있었습니다.

2017-11-11 14:25:41:271 612 4858 Setup WARNING: SelfUpdate check failed to download package information, error = 0x80244022
2017-11-11 14:25:41:271 612 4858 Agent * WARNING: Skipping scan, self-update check returned 0x80244022
2017-11-11 14:25:41:271 612 4858 Agent WARNING: WU client failed Searching for update with error 0x80244022
2017-11-11 14:25:41:271 612 4abc AU # WARNING: Search callback failed, result = 0x80244022
2017-11-11 14:25:41:271 612 4abc AU # WARNING: Failed to find updates with error code 80244022

서버 측 오류 및 503 응답 확인

서버 측 WSUSCtrl.log에는 아래와 같은 오류가 표시되었습니다.

The request failed with HTTP status 503: Service Unavailable
Failures reported during periodic health check by the WSUS Server SCCM-SRV1. Will retry check in 1 minutes

즉, WSUS 사이트 자체가 응답하지 않는 상태였습니다. 실제로 브라우저에서 WSUS Administration 주소(https://SCCM-Srv1:8530)를 열어보면 다음과 같은 오류 화면이 나타납니다.

HTTP Error 503. The service is unavailable

원인 분석: WsusPool 애플리케이션 풀 중지

IIS 관리자를 열어 확인해 보니, WSUS를 담당하는 애플리케이션 풀(WsusPool)이 중지되어 있었습니다. 수동으로 시작하면 20~30분 뒤에 다시 중지되었고, 시스템 로그에는 WAS 소스의 이벤트 ID 5117 항목이 기록되어 있었습니다.

A worker process serving application pool 'WsusPool' has requested a recycle because it reached its private bytes memory limit

기본적으로 WsusPool의 메모리 제한은 1.8GB입니다. 이 값이 초과되면(WSUS 클라이언트 수가 많거나, 특히 첫 스캔이 진행될 때 발생하기 쉽습니다) 애플리케이션 풀이 강제로 재시작됩니다. 현재 풀이 사용 중인 메모리 양은 작업 관리자에서 w3wp.exe 프로세스를 통해 확인할 수 있으며, 1.8GB 제한을 넘으면 프로세스가 곧바로 재시작됩니다. 따라서 이 문제를 해결하려면 할당되는 메모리 한도를 늘려야 합니다.

참고: 이 문제는 이전에 살펴본 Windows 10에서 업데이트 수신 시 발생하는 0x8024401C 오류 사례와 부분적으로 유사합니다.

해결 방법: WsusPool 메모리 제한 늘리기

IIS 관리자에서 응용 프로그램 풀(Application Pools)을 선택한 후 WsusPool을 마우스 오른쪽 버튼으로 클릭하고 재활용(Recycling) 메뉴로 들어갑니다. 그다음 전용 메모리 사용량(KB)(Private memory usage) 필드의 값을 늘려줍니다.

값을 얼마나 늘릴지는 환경에 따라 다르지만, 3~4GB부터 시작하는 것을 권장합니다. 실제 저의 경우 2,000대가 넘는 WSUS 클라이언트 환경에서 6GB면 충분했습니다.

할당 메모리 크기는 애플리케이션 풀의 고급 설정(Advanced Settings)에서 전용 메모리 사용량(KB) 값을 수정하는 방법으로도 변경할 수 있습니다.

설정 변경 후에는 시작/중지(Start/Stop) 또는 재활용(Recycle) 버튼을 눌러 애플리케이션 풀을 다시 시작합니다.

적용 이후 w3wp.exe 프로세스의 메모리 사용량은 3GB를 넘지 않았고, 다음 날부터 클라이언트 PC들이 정상적으로 업데이트를 받기 시작했습니다.

추가 팁: 대규모 WSUS 클라이언트 환경 최적화

SCCM Software Update Point에서 업데이트를 받는 WSUS 클라이언트 수가 많다면(특히 처음으로 업데이트를 받는 클라이언트가 많은 경우), 고급 설정에서 다음 매개변수들의 값을 함께 늘리는 것이 좋습니다.

  • Queue Length(큐 길이): 1,000 → 25,000
  • 'Service Unavailable' 응답 유형: HttpLevel → TcpLevel
  • Failure Interval(실패 간격, 분): 5 → 30
  • Maximum Failures(최대 실패 허용 횟수): 5 → 60

권장 업데이트 적용

안정성 향상을 위해 Windows Server 2008 R2의 WSUS 3.0 SP2 환경이라면 다음 업데이트 설치를 권장합니다.

  1. KB2720211
  2. KB2734608

Windows Server 2012 R2의 WSUS 4.0 환경에서는 다음 업데이트를 권장합니다.

  • KB2919442
  • KB2919355
  • KB3095113
  • KB3159706