2016년 10월 2일 일요일

svchost.exe의 CPU 점유 해결

Windows Vista 시절에 구입한 HP Compaq 6715b는 거무튀튀하고 큼직한 노트북이다. 아기자기한 맛이 없고 성능도 떨어지지만, 넓은 화면과 키보드가 있어 문서 작성용으로는 제격인 외형을 갖췄다. 작년말에 Windows Vista를 재설치하여 사용 중인데, CPU가 늘 100%로 차 있고 전반적으로 매우 느려서, 사용하는 데에 아주 많은 인내심을 필요로 했다. 그렇지만, 단지 하드웨어의 사양이 낮아서 그런 것이 아니라, 뭔가 이상이 있었다.

여러 개의 svchost.exe 프로세스 중 한 개가 대부분(80% 가량)의 CPU를 점유한다는 것까지는 파악했지만, svchost의 정체가 무엇인지, 어떻게 해야 CPU 점유를 낮출 수 있는지 갈피를 잡지 못하고 있었다.

오늘에야 위키피디아의 도움을 받아 문제를 해결했다. 여러 개의 시스템 서비스를 위해 각각의 프로세스를 띄우는 대신, 한 개의 프로세스에 모아서 실행시키는 것이 바로 svchost.exe다. 특정 svchost.exe 프로세스가 어떤 서비스들을 돌리고 있는지 알고 싶으면, Windows 작업 관리자의 프로세스 목록에서 오른쪽 클릭하여 팝업 메뉴에서 '서비스로 이동'을 선택하면 된다. 내 경우에는 Windows Update 서비스가 문제를 일으키고 있다는 것을, 서비스를 하나씩 중지시켜보는 방법으로 알아냈다.

Windows Update 서비스를 중지하자마자 CPU 점유율이 확 떨어졌다

결정적인 도움을 준 문서를 읽게 된 계기는 sysinternals의 Process Explorer 도구에서 작은 편의 기능으로 제공한 키워드 검색이었다. 이전의 문제해결 시도에서는 왜 위키피디아를 찾지 못했을까? 그것은 내가 "svchost.exe CPU full"과 비슷한 문구로 구글링을 계속했기 때문이다. 당장의 불을 끄는 방법에만 관심이 있었을 뿐, 불에 대한 이해나 불을 다루는 방법에는 관심을 두지 않았기 때문일 것이다.

댓글 없음:

댓글 쓰기