다음을 통해 공유


WSUS 서버에서 높은 CPU 사용량 문제 해결

이 문서에서는 WSUS(Windows Server Update Service)에서 높은 CPU 사용량 문제를 해결하기 위한 몇 가지 절차를 소개합니다.

참고

홈 사용자: 이 문서는 기술 지원 에이전트 및 IT 전문가만을 위한 것입니다. 문제에 대한 도움을 찾고 있는 경우 Microsoft 커뮤니티에 문의하세요.

원래 제품 버전: Configuration Manager(현재 분기)
원래 KB 번호: 4489045

WSUS 데이터베이스(SUSDB)가 클린 않은 경우 높은 CPU 사용량이 발생할 수 있습니다. 서버가 잠시 실행되면 WSUS 서버가 클라이언트에 제공할 업데이트가 너무 많을 수 있습니다.

이 경우 오류가 발생하거나 새 WSUS 서버가 설치되거나 관련 없는 문제로 인해 클라이언트가 며칠 동안 검색하지 못하는 경우 모든 클라이언트가 검사를 시작하고 지속적으로 검사를 계속할 수 있으며 실제로 검사 또는 설치 업데이트를 완료하지 못할 수 있습니다.

이 문제를 해결하려면 WSUS 서버를 클린 대체된 업데이트를 거부해야 합니다. 월별 정리 루틴으로 아래 순서대로 단계를 수행합니다. 그러나 높은 CPU 문제를 해결하는 경우 먼저 4단계를 수행한 다음 3단계를 수행하는 것이 좋습니다. CPU 사용량이 감소할 때까지 1단계와 2단계를 연기해야 합니다.

1단계: WSUS 데이터베이스 백업

WSUS 데이터베이스를 백업하면 성능이 약간 향상될 수 있습니다.

2단계: WSUS 서버 정리 마법사 실행

WSUS 서버 정리 마법사를 실행하면 데이터베이스 성능이 향상될 수 있습니다. 그러나 클라이언트가 검사하는 업데이트 수는 줄어들지 않습니다. 또한 반드시 문제를 해결하지 않고 마법사를 실행하는 데 몇 시간 또는 며칠이 걸릴 수 있습니다.

3단계: WSUS 데이터베이스 다시 인덱싱

WSUS 데이터베이스를 다시 인덱싱하면 조각화된 경우 데이터베이스 성능이 향상될 수 있습니다. 이렇게 하려면 다음 명령을 실행합니다.

  1. statistics 옵션을 사용하여 을 업데이트합니다FULLSCAN.

    Use <dbname>
    Go
    Exec sp_msforeachtable 'update statistics ? with fullscan'
    Go
    
  2. 인덱스를 다시 빌드합니다.

    Use <dbname>
    Go
    Exec sp_msforeachtable 'DBCC DBREINDEX (''?'')'
    Go
    

4단계: 대체 업데이트 거부

대체된 업데이트가 감소하면 검사되는 업데이트 수가 즉시 줄어듭니다.

대체된 업데이트를 거부하거나 WSUS 애플리케이션 풀이 너무 빨리 재활용되는 상황에서 WSUS 작업을 수행하려면 먼저 클라이언트가 WSUS 애플리케이션 풀에 연결하는 것을 중지할 수 있습니다. 이렇게 하려면 WSUS 콘솔을 사용하여 WSUS 서버에 연결한 다음 WSUS 서버를 업스트림 서버 및 Configuration Manager(사용하는 경우)와 동기화합니다. Configuration Manager 사용하는 경우 클라이언트가 WSUS에 현재 및 유효한 업데이트가 있음을 확인할 수 있도록 Configuration Manager 콘솔에서 최신 버전의 업데이트와 동기화하는 것이 중요합니다.

클라이언트의 연결을 끊려면 다음 방법 중 하나를 사용합니다.

방법 1: 테스트 애플리케이션 풀 만들기

  1. IIS(인터넷 정보 서비스) 관리자 영역에서 애플리케이션 풀을 마우스 오른쪽 단추로 클릭한 다음 애플리케이션 풀 추가를 선택하여 테스트 애플리케이션 풀을 만듭니다.

  2. 클라이언트 웹 서비스>애플리케이션>고급 설정 관리를 선택한 다음, 애플리케이션 풀을 만든 테스트 애플리케이션 풀로 변경합니다.

방법 2: WSUS 웹 사이트의 포트 변경

  1. WSUS 관리 웹 사이트>바인딩 편집을 선택합니다.

  2. WSUS 콘솔을 변경하여 새 포트에 연결하고, 스크립트를 실행하고, USS와 동기화합니다.

    참고

    이 메서드는 Configuration Manager 동기화에 실패합니다.

방법 3: 방화벽 규칙을 사용하여 모든 클라이언트 IP 주소를 차단하거나 USS 및 사이트 서버 들어오는 연결만 허용

클라이언트가 WSUS 서버에서 연결이 끊어진 후 (및 -exclusion 필요한 경우 기간) 매개 변수를 사용하여 -skipdeclinePowerShell 스크립트를 실행하여 거부될 수 있는 대체된 업데이트의 총 수를 확인할 수 있습니다. 그런 다음 를 사용하여 -skipdecline 스크립트를 다시 실행하여 실제로 업데이트를 거부합니다.

시간 제한으로 인해 PowerShell 스크립트를 실행할 수 없는 극단적인 경우 모든 업데이트가 표시될 때 대체 열을 WSUS 콘솔에 추가한 다음 다음 단계에 따라 업데이트를 수동으로 거부할 수 있습니다.

  1. Windows 업데이트 Services MMC(Microsoft Management Console)를 엽니다.
  2. 모든 업데이트 보기를 선택합니다. 이렇게 하려면 표시를 설정하여 상태 있는 거부를 제외한 모든항목의승인 상태 표시한 다음 새로 고침을 클릭합니다.
  3. 열 머리글을 마우스 오른쪽 단추로 클릭한 다음 대체 선택합니다.
  4. 대체 열을 마우스 왼쪽 단추로 클릭하여 대체 기준으로 정렬합니다.
  5. 대체된 업데이트를 선택하고 거부합니다.

일반적으로 유효한 업데이트가 7,000개 미만의 연결로 축소된 후 성능 문제를 해결할 수 있습니다(하지만 5,000개 미만이 선호됨). 클라이언트가 모든 검사를 완료할 수 있도록 며칠 동안 WSUS 관리 웹 사이트에 대한 연결을 제한해야 할 수 있습니다. 또한 대체된 업데이트를 거부한 후 데이터베이스를 다시 인덱싱하는 것이 좋습니다. Configuration Manager 사용하는 경우 클라이언트가 연결되지 않는 동안 WSUS와 Configuration Manager 간에 동기화를 수행합니다.

이러한 단계를 완료한 후에는 CPU 사용량이 여전히 너무 많은 경우 연결을 제한해야 합니다. 이렇게 하려면 다음과 같이 하십시오.

  1. IIS(인터넷 정보 서비스) 관리자>WSUS 관리 웹 사이트>관리 웹 사이트>고급 설정> 최대동시 연결을제한>합니다.

  2. 값을 50 또는 100으로 설정합니다.

  3. 작업 관리자의 W3Wp 프로세스와 서버의 총 CPU를 모니터링합니다.

  4. 작업 관리자 >리소스 모니터를 열고 WSUS 애플리케이션 풀에 대한 PID 를 확인합니다. WSUS 애플리케이션 풀을 실행하는 w3wp 프로세스가 확실하지 않은 경우 Appcmd(메서드 2)를 사용하여 PID를 쉽게 식별할 수 있습니다.

기본적으로 PID는 29시간마다 한 번만 변경해야 합니다. 자주 변경되는 경우 WSUS 애플리케이션 풀의 현재 CPU 및 메모리 설정에 대해 연결 제한이 너무 높을 수 있습니다.

안정적인 w3wp 메모리 및 90% 미만의 안정적인 전체 CPU 사용을 모니터링합니다. 안정적인 상태 CPU 및 메모리 사용이 감소하면 WSUS 관리 웹 사이트에 대한 연결 제한을 서서히 늘릴 수 있습니다. 어떤 상황에 처해 있는지에 따라 메모리 사용량이 안정적인 상태로 돌아가는 데 며칠이 걸릴 수 있습니다. 연결 제한을 늘리려면 며칠 동안 약간의 증가와 함께 발생해야 할 수 있습니다.

참조

업데이트 화요일 이후 WSUS의 높은 CPU/높은 메모리