Windows가 원활하게 작동하는 데에는 수많은 백그라운드 프로세스와 서비스가 관여하고 있습니다. 대부분의 백그라운드 프로세스는 최소한의 CPU와 RAM만 사용하지만, 가끔 프로세스가 오작동하거나 손상되어 평소보다 훨씬 많은 시스템 자원을 점유하는 경우가 있습니다. 이렇게 되면 포그라운드에서 실행 중인 다른 프로그램에 할당되는 자원이 부족해지죠. 그런 문제를 일으키는 대표적인 프로세스 중 하나가 바로 진단 정책 서비스(Diagnostic Policy Service)입니다.
진단 정책 서비스란 무엇인가?
진단 정책 서비스는 Svchost.exe(서비스 호스트)의 공유 프로세스 중 하나로, Windows 구성 요소들의 문제를 감지하고 해결하는 역할을 담당합니다. 발견된 문제를 자동으로 수정하고, 불가능할 경우 진단 정보를 로그로 기록하여 분석에 활용합니다. 원활한 사용자 경험을 위한 핵심 기능이기 때문에 컴퓨터 부팅 시 자동으로 시작되어 백그라운드에서 상시 활성화됩니다.
CPU를 과도하게 소모하는 정확한 원인은 알려져 있지 않지만, 잠재적인 해결책들을 살펴보면 손상된 서비스 인스턴스, 손상된 시스템 파일, 바이러스나 악성코드 감염, 과도하게 쌓인 이벤트 로그 파일 등이 원인일 가능성이 높습니다.
이 글에서는 진단 정책 서비스의 CPU 사용량을 정상 수준으로 낮출 수 있는 5가지 방법을 자세히 소개합니다.
해결 방법 요약
대부분의 사용자는 서비스를 단순히 재시작하는 것만으로도 문제를 해결할 수 있습니다. 그래도 해결되지 않는다면 SFC 및 DISM 검사를 통해 손상된 시스템 파일을 복구하거나, 내장 성능 문제 해결사를 실행해 보세요. Windows를 최신 버전으로 업데이트하거나 이벤트 뷰어 로그를 삭제하는 것도 도움이 됩니다. 모든 방법이 실패하면 마지막 수단으로 서비스를 비활성화할 수 있습니다. 다만 이 경우 Windows가 더 이상 자동 진단 및 오류 복구를 수행하지 않게 된다는 점을 유의하세요.
방법 1: 작업 관리자에서 프로세스 종료하기
프로세스 인스턴스가 손상되면 불필요하게 많은 시스템 자원을 점유할 수 있습니다. 이 경우 해당 프로세스(진단 정책 서비스)를 직접 종료한 후 자동으로 재시작되도록 하면 됩니다. 작업 관리자에서 간단히 처리할 수 있습니다.
1. 시작 메뉴 버튼을 마우스 오른쪽 버튼으로 클릭하고 작업 관리자를 선택합니다.
2. 자세히를 클릭해 작업 관리자를 확장한 후 현재 활성화된 모든 프로세스와 서비스를 확인합니다.
3. Windows 프로세스 목록에서 서비스 호스트: 진단 정책 서비스를 찾아 마우스 오른쪽 버튼으로 클릭한 뒤 작업 끝내기를 선택합니다. (항목을 왼쪽 클릭으로 선택한 후 우측 하단의 작업 끝내기 버튼을 눌러도 됩니다.)
진단 정책 서비스는 자동으로 재시작됩니다. 만약 재시작되지 않는다면 컴퓨터를 다시 시작한 후 문제가 지속되는지 확인하세요.
방법 2: SFC 및 DISM 검사 실행하기
최근의 Windows 업데이트 또는 백신 프로그램과의 충돌로 인해 일부 시스템 파일이 손상되어 진단 정책 서비스의 CPU 사용량이 높아졌을 수 있습니다. 다행히 Windows에는 손상되거나 누락된 시스템 파일을 검사하고 복구하는 내장 유틸리티가 있습니다. 첫 번째는 시스템 파일 검사기(SFC)로, 이름 그대로 모든 시스템 파일의 무결성을 검사하고 손상된 파일을 캐시된 복사본으로 교체합니다. SFC 검사로 해결되지 않으면 DISM(배포 이미지 서비스 및 관리) 명령줄 도구를 사용하세요.
1. Windows 검색창에 명령 프롬프트를 입력하고, 검색 결과가 나타나면 오른쪽 패널의 관리자 권한으로 실행을 클릭합니다.
2. 명령 프롬프트 창에 아래 명령어를 입력하고 Enter 키를 눌러 실행합니다. 검사에 시간이 걸릴 수 있으니 창을 닫지 말고 100%가 될 때까지 기다립니다.
sfc /scannow
3. SFC 검사가 완료되면 아래 DISM 명령어를 실행합니다. 이번에도 검사와 복구 과정이 끝날 때까지 기다린 후 프로그램을 종료하고, 완료되면 컴퓨터를 재시작하세요.
DISM /Online /Cleanup-Image /RestoreHealth
방법 3: Windows 업데이트 및 성능 문제 해결사 실행하기
앞서 언급했듯이 최근 설치된 Windows 업데이트가 진단 정책 서비스의 이상 동작을 유발했을 수도 있습니다. 이전 업데이트로 롤백하거나, Microsoft가 배포한 새로운 수정 업데이트가 있는지 확인해 보세요. 업데이트 중 문제가 발생한다면 내장 업데이트 문제 해결사를 실행하세요.
Windows를 업데이트하는 것 외에도 시스템 성능 문제 해결사를 실행하여 성능 관련 문제를 자동으로 진단하고 수정할 수 있습니다.
Windows 업데이트 방법:
1. Windows 키 + I를 동시에 눌러 설정을 연 후 업데이트 및 보안을 클릭합니다.
2. Windows Update 탭에서 업데이트 확인을 클릭합니다. 사용 가능한 업데이트가 검색되고 자동으로 다운로드됩니다. 새 업데이트가 설치되면 컴퓨터를 재시작하세요.
3. 진단 정책 서비스가 여전히 시스템 자원을 점유한다면 업데이트 문제 해결사를 실행합니다. 다시 업데이트 및 보안 설정을 열고 문제 해결 탭으로 이동한 후 추가 문제 해결사를 클릭합니다.
4. '시작 및 실행' 섹션에서 Windows Update를 클릭하고, 이어지는 화면에서 문제 해결사 실행 버튼을 누른 후 화면의 지시에 따라 진행합니다.
시스템 성능 문제 해결사 실행 방법:
1. 시작 검색창에 제어판을 입력하고 Enter 키를 눌러 제어판을 엽니다.
2. 문제 해결을 클릭합니다.
3. 시스템 및 보안 아래에서 유지 관리 작업 실행 링크를 클릭합니다.
4. 다음 창에서 고급을 클릭하고 자동으로 복구 적용 옆의 체크박스를 선택한 후 다음을 클릭해 문제 해결사를 실행합니다.
방법 4: 이벤트 뷰어 로그 삭제하기
이벤트 뷰어는 애플리케이션 및 시스템 오류 메시지, 경고 등을 기록합니다. 이러한 이벤트 로그가 상당한 크기로 쌓이면 서비스 호스트 프로세스에 문제를 일으킬 수 있습니다. 로그를 삭제하는 것만으로도 진단 정책 서비스의 문제를 해결할 수 있으며, 향후 문제 예방을 위해 주기적으로 정리하는 것을 권장합니다.
1. Windows 키 + R을 눌러 실행 창을 열고, eventvwr.msc를 입력한 후 확인을 클릭해 이벤트 뷰어를 실행합니다.
2. 왼쪽 창에서 Windows 로그 폴더 옆의 화살표를 클릭해 확장하고, 목록에서 응용 프로그램을 선택합니다.
3. 먼저 오른쪽 창에서 모든 이벤트를 다른 이름으로 저장...을 클릭해 현재 이벤트 로그를 백업합니다(기본적으로 .evtx 형식으로 저장되며, 필요에 따라 .txt 또는 .csv 형식으로 추가 저장 가능). 저장이 완료되면 로그 지우기...를 클릭하고, 팝업 창에서 지우기를 한 번 더 클릭합니다.
4. 보안, 설치, 시스템 로그에 대해서도 동일한 작업을 반복합니다. 모든 이벤트 로그를 삭제한 후 컴퓨터를 재시작하세요.
방법 5: 진단 정책 서비스 비활성화 및 SRUDB.dat 파일 삭제하기
위의 어떤 방법으로도 문제가 해결되지 않았다면, 서비스를 완전히 비활성화하는 것을 고려할 수 있습니다. 서비스를 비활성화하는 방법은 네 가지가 있으며, 가장 간단한 방법은 서비스 앱을 이용하는 것입니다. 비활성화와 함께 SRUDB.dat 파일도 삭제합니다. 이 파일에는 컴퓨터 관련 각종 정보(앱별 배터리 사용량, 디스크 읽기/쓰기 데이터, 진단 정보 등)가 저장되며, 진단 정책 서비스가 몇 초마다 생성하고 수정하기 때문에 디스크 사용량이 높아지는 원인이 됩니다.
1. 실행 창에 services.msc를 입력하고 확인을 클릭해 서비스 앱을 엽니다.
2. 서비스 목록이 가나다순으로 정렬되어 있는지 확인하고(이름 열 헤더를 클릭하면 됩니다) 진단 정책 서비스를 찾아 마우스 오른쪽 버튼으로 클릭한 후 속성을 선택합니다.
3. 일반 탭에서 중지 버튼을 클릭해 서비스를 종료합니다.
4. 시작 유형 드롭다운 메뉴를 펼치고 사용 안 함을 선택합니다.
5. 적용 버튼을 클릭해 변경 사항을 저장한 후 확인을 클릭해 속성 창을 닫습니다.
6. 바탕 화면의 파일 탐색기 아이콘을 두 번 클릭해 열고, 아래 경로로 이동합니다.
C:\WINDOWS\System32\sru
7. SRUDB.dat 파일을 찾아 마우스 오른쪽 버튼으로 클릭한 후 삭제를 선택합니다. 나타나는 팝업 창을 모두 확인합니다.
서비스 앱에서 진단 정책 서비스를 비활성화하지 못했다면, 아래의 다른 방법들을 시도해 보세요.
1. 시스템 구성에서 비활성화: 시스템 구성(msconfig)을 열고 서비스 탭에서 진단 정책 서비스의 체크를 해제합니다.
2. 레지스트리 편집기에서 비활성화: 레지스트리 편집기를 열고 아래 경로로 이동합니다.
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DPS
3. 오른쪽 창에서 Start 값을 두 번 클릭한 후 값 데이터를 4로 변경합니다.
4. 컴퓨터를 재시작하면 Windows가 자동으로 SRUDB.dat 파일을 다시 생성합니다. 진단 정책 서비스는 더 이상 활성화되지 않으며, 성능 문제도 발생하지 않습니다.
함께 참고하면 좋은 글
- 서비스 호스트: 로컬 시스템(svchost.exe) 높은 CPU 및 디스크 사용량 해결 방법
- 서비스 호스트: 로컬 시스템에 의한 높은 CPU 사용량 수정 방법
- CMD로 손상된 하드 드라이브 복구하는 방법
- Windows 오디오 장치 그래프 격리(Audio Device Graph Isolation) 높은 CPU 사용량 해결 방법
이 가이드가 도움이 되었기를 바라며, Windows 10 PC에서 서비스 호스트: 진단 정책 서비스의 높은 CPU 사용량 문제를 성공적으로 해결하셨길 바랍니다. 향후 같은 문제가 재발하는 것을 예방하려면 모든 드라이버를 최신 상태로 유지하고 정기적으로 바이러스 검사를 수행하세요. 더 이상 필요하지 않은 서드파티 애플리케이션도 삭제하는 것이 좋습니다. 진단 정책 서비스와 관련해 추가 도움이 필요하시면 아래 댓글로 문의해 주세요.