작업 관리자를 열었을 때 서비스 호스트: 로컬 시스템(Service Host: Local System, svchost.exe)이라는 프로세스가 CPU와 디스크를 과도하게 점유해 PC가 느려지는 현상을 겪고 계신가요? 이 문제는 생각보다 많은 윈도우 사용자가 겪는 대표적인 성능 저하 원인입니다. 이 글에서는 svchost.exe의 높은 CPU 점유율, 메모리 사용량, 디스크 사용량 문제의 원인을 파악하고 단계별로 해결하는 방법을 자세히 안내합니다.
서비스 호스트: 로컬 시스템(svchost.exe)이란?
서비스 호스트: 로컬 시스템은 그 자체가 하나의 프로그램이 아니라, 여러 시스템 프로세스를 함께 실행하는 일종의 서비스 호스팅 컨테이너입니다. 즉, 이 컨테이너 아래에서 실행되는 어떤 프로세스든 CPU나 디스크 사용량 급증의 원인이 될 수 있기 때문에 문제 해결이 까다로운 편입니다.
서비스 호스트: 로컬 시스템에는 다음과 같은 프로세스들이 포함됩니다.
- 사용자 관리자(User Manager)
- 그룹 정책 클라이언트(Group Policy Client)
- Windows 자동 업데이트(Windows Auto Update)
- BITS(Background Intelligent Transfer Service)
- 작업 스케줄러(Task Scheduler)
Ctrl + Alt + Del 키를 눌러 작업 관리자를 연 후 '프로세스' 탭으로 이동하면 '서비스 호스트: 로컬 서비스', '서비스 호스트: 네트워크 서비스' 등 관련 항목을 확인할 수 있습니다. 각 항목을 확장하면 하위에서 실행 중인 다양한 프로세스 목록이 나타납니다.
예를 들어 Windows Update 같은 프로세스는 업데이트 작업 중 일시적으로 많은 시스템 자원을 사용할 수 있지만, 특정 프로세스가 지속적으로 높은 CPU와 디스크 사용량을 유발한다면 별도의 조치가 필요합니다.
시작 전 준비사항
참고: 진행 중 문제가 발생할 경우에 대비해 시스템 복원 지점을 미리 만들어 두는 것을 권장합니다.
문제 해결에 앞서 가장 먼저 할 일은 근본 원인 파악입니다. 서비스 호스트: 로컬 시스템 아래의 어떤 서비스나 프로세스가 높은 CPU·디스크 사용량을 유발하는지 확인해야 합니다. 이를 위해 마이크로소프트에서 무료로 제공하는 Process Explorer 도구를 활용합니다.
Process Explorer로 원인 프로세스 찾기
- 마이크로소프트 공식 사이트에서 Process Explorer를 다운로드한 후, procexp64.exe 파일을 마우스 오른쪽 버튼으로 클릭하고 '관리자 권한으로 실행'을 선택합니다.
- CPU 열을 클릭하여 프로세스를 CPU 또는 메모리 사용량 기준으로 정렬합니다.
- 목록에서 svchost.exe 프로세스를 찾아 마우스 오른쪽 버튼으로 클릭한 후 '속성(Properties)'을 선택합니다.
- 속성 창에서 '서비스(Services)' 탭으로 이동하면 해당 프로세스에서 실행 중인 서비스 목록을 확인할 수 있습니다.
- 이어서 '스레드(Thread)' 탭으로 이동하면 svchost.exe 내부에서 실행되는 모든 스레드를 볼 수 있습니다.
- CPU 열과 Cycles Delta 열을 클릭해 스레드를 정렬한 뒤, 높은 CPU 사용량을 유발하는 서비스나 DLL 라이브러리를 찾습니다.
- 문제를 일으키는 해당 서비스를 클릭한 후 'Kill(종료)' 또는 'Suspend(일시 중지)' 버튼을 누릅니다.
- 몇 분간 기다린 후 서비스 호스트: 로컬 시스템의 높은 CPU·디스크 사용량이 해결되었는지 확인합니다.
- 문제가 계속된다면, 시스템 자원을 많이 차지하는 나머지 스레드에 대해서도 위 과정을 반복합니다.
- 범인이 되는 특정 프로세스를 찾아냈다면, services.msc 창에서 해당 서비스를 비활성화해야 합니다.
- 이때 4번 단계에서 확인한 정보를 바탕으로 DLL 이름과 서비스 이름을 매핑해야 합니다.
services.msc에서 해당 서비스 비활성화하기
- Windows 키 + R을 누른 후 services.msc를 입력하고 Enter 키를 누릅니다.
- services.msc 창에서 문제를 일으키는 서비스를 찾아 마우스 오른쪽 버튼으로 클릭한 후 '속성'을 선택합니다.
- 서비스가 실행 중이라면 '중지(Stop)'를 클릭하고, 시작 유형 드롭다운 메뉴에서 '사용 안 함(Disabled)'을 선택합니다.
- '적용' → '확인'을 클릭해 변경 사항을 저장합니다. 이렇게 하면 서비스 호스트: 로컬 시스템의 높은 CPU·디스크 사용량 문제가 해결될 수 있습니다.
방법 1: SFC 및 DISM 명령 실행
- Windows 키 + X를 누른 후 '명령 프롬프트(관리자)'를 클릭합니다.
- 명령 프롬프트에 아래 명령어를 입력하고 Enter 키를 누릅니다:
Sfc /scannow sfc /scannow /offbootdir=c:\ /offwindir=c:\windows (위 명령이 실패할 경우 시도)
- 검사가 완료될 때까지 기다린 후 PC를 재시작합니다.
- 다시 명령 프롬프트를 열고 아래 명령어를 하나씩 입력하며 실행합니다:
Dism /Online /Cleanup-Image /CheckHealth Dism /Online /Cleanup-Image /ScanHealth Dism /Online /Cleanup-Image /RestoreHealth
- DISM 명령이 완료될 때까지 기다립니다.
- 위 명령이 작동하지 않으면 아래 명령어를 시도해 보세요:
Dism /Image:C:\offline /Cleanup-Image /RestoreHealth /Source:c:\test\mount\windows Dism /Online /Cleanup-Image /RestoreHealth /Source:c:\test\mount\windows /LimitAccess
참고: C:\RepairSource\Windows 부분은 복구 원본(윈도우 설치 디스크 또는 복구 디스크)의 실제 경로로 교체해야 합니다.
- PC를 재부팅한 후 문제가 해결되었는지 확인합니다.
방법 2: SoftwareDistribution 폴더 삭제
- Windows 키 + R을 누른 후 services.msc를 입력하고 Enter 키를 누릅니다.
- Windows Update 서비스를 마우스 오른쪽 버튼으로 클릭하고 '중지'를 선택합니다.
- 파일 탐색기를 열고 다음 경로로 이동합니다:
C:\Windows\SoftwareDistribution - SoftwareDistribution 폴더 내의 모든 파일과 폴더를 삭제합니다.
- 다시 Windows Update 서비스를 마우스 오른쪽 버튼으로 클릭하고 '시작'을 선택합니다.
- 업데이트를 다시 다운로드해 보고 문제가 해결되었는지 확인합니다.
방법 3: Superfetch 비활성화
- Windows 키 + R을 누른 후 services.msc를 입력하고 Enter 키를 누릅니다.
- 목록에서 Superfetch(SysMain) 서비스를 찾아 마우스 오른쪽 버튼으로 클릭한 후 '속성'을 선택합니다.
- 서비스 상태가 '실행 중'이라면 '중지'를 클릭합니다.
- 시작 유형 드롭다운 메뉴에서 '사용 안 함'을 선택합니다.
- '적용' → '확인'을 클릭합니다.
- 변경 사항을 적용하기 위해 PC를 재시작합니다.
위 방법으로 Superfetch가 비활성화되지 않는다면 레지스트리 편집기를 통한 비활성화를 시도해 보세요.
- Windows 키 + R을 누른 후 regedit를 입력하고 Enter 키를 눌러 레지스트리 편집기를 엽니다.
- 다음 레지스트리 키로 이동합니다:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters
- PrefetchParameters가 선택된 상태에서 오른쪽 창의 EnableSuperfetch 값을 더블클릭하고 값 데이터를 0으로 변경합니다.
- '확인'을 클릭하고 레지스트리 편집기를 닫습니다.
- PC를 재시작한 후 문제가 해결되었는지 확인합니다.
방법 4: 레지스트리 수정(Ndu)
- Windows 키 + R을 누른 후 regedit를 입력하고 Enter 키를 눌러 레지스트리 편집기를 엽니다.
- 다음 레지스트리 키로 이동합니다:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Ndu - Ndu가 선택된 상태에서 오른쪽 창에서 Start 값을 더블클릭합니다.
- Start 값 데이터를 4로 변경하고 '확인'을 클릭합니다.
- 모든 창을 닫고 PC를 재부팅해 변경 사항을 저장합니다.
방법 5: Windows Update 문제 해결사 실행
- Windows 키 + I를 눌러 설정을 연 후 '업데이트 및 보안'을 클릭합니다.
- 왼쪽 메뉴에서 '문제 해결'을 선택합니다.
- '시작 및 실행' 섹션에서 Windows Update를 클릭합니다.
- '문제 해결사 실행' 버튼을 클릭합니다.
- 화면의 지시에 따라 문제 해결사를 실행하고 문제가 해결되는지 확인합니다.
방법 6: 클린 부팅 수행
타사 소프트웨어가 시스템과 충돌하면서 높은 CPU 사용량을 유발하는 경우도 있습니다. 이런 경우 클린 부팅(Clean Boot)을 수행해 최소한의 드라이버와 시작 프로그램만으로 윈도우를 실행한 뒤, 단계별로 원인을 진단하면 문제를 좁혀갈 수 있습니다.
방법 7: Windows Update 서비스 재시작
- Windows 키 + R을 누른 후 services.msc를 입력하고 Enter 키를 누릅니다.
- 다음 서비스들을 찾습니다:
- BITS(Background Intelligent Transfer Service)
- Cryptographic Service(암호화 서비스)
- Windows Update
- MSI Installer - 각 서비스를 마우스 오른쪽 버튼으로 클릭해 속성을 열고, 시작 유형이 '자동(Automatic)'으로 설정되어 있는지 확인합니다.
- 위 서비스 중 중지된 것이 있다면 서비스 상태에서 '시작'을 클릭합니다.
- Windows Update 서비스를 마우스 오른쪽 버튼으로 클릭하고 '다시 시작'을 선택합니다.
- '적용' → '확인'을 클릭한 후 PC를 재부팅해 변경 사항을 저장합니다.
방법 8: 프로세서 예약 변경
- Windows 키 + R을 누른 후 sysdm.cpl을 입력하고 Enter 키를 눌러 시스템 속성을 엽니다.
- '고급' 탭으로 이동한 후 '성능' 항목의 '설정'을 클릭합니다.
- 성능 옵션 창에서 다시 '고급' 탭으로 이동합니다.
- '프로세서 예약' 항목에서 '프로그램'을 선택한 후 '적용' → '확인'을 클릭합니다.
- PC를 재부팅한 후 문제가 해결되었는지 확인합니다.
방법 9: BITS(백그라운드 인텔리전트 전송 서비스) 비활성화
- Windows 키 + R을 누른 후 msconfig를 입력하고 Enter 키를 누릅니다.
- '서비스' 탭으로 이동한 후 'Background Intelligent Transfer Service' 항목의 체크를 해제합니다.
- '적용' → '확인'을 클릭합니다.
방법 10: 시스템 복원 수행
- Windows 키 + R을 누른 후 sysdm.cpl을 입력하고 Enter 키를 누릅니다.
- '시스템 보호' 탭으로 이동한 후 '시스템 복원' 버튼을 클릭합니다.
- '다음'을 클릭하고 원하는 시스템 복원 지점을 선택합니다.
- 화면의 지시에 따라 시스템 복원을 완료합니다.
- PC를 재부팅해 변경 사항을 저장합니다.
마무리
위 방법들을 순서대로 시도하면 서비스 호스트: 로컬 시스템(svchost.exe)의 높은 CPU 및 디스크 사용량 문제를 대부분 해결할 수 있습니다. 특히 Process Explorer를 활용한 원인 분석부터 시작하면 불필요한 서비스까지 함부로 끄는 실수를 피할 수 있으니 참고하세요. 이 가이드에 대해 추가로 궁금한 점이 있다면 언제든 댓글로 문의해 주세요.