안녕하세요, 오늘은 CPU 부하가 높아지는 윈도우 프로세스에 대해서 알아보도록 하겠습니다. CPU 부하가 높아지는 이유는 프로세스의 사용이 많은 상태로 정의할 수 있습니다. 또한 Windows OS 버전이나 사용하고 있는 기능, 어플리케이션에서 적용하고 있는 Service Pack 업데이트 및 패치 등에 따라 크게 변화하기도 하고 사용자의 설정에 따라 부하가 다소 해결되기도 합니다. 아래는 다분히 저의 주관적인 사용량이 많은 프로세스의 기준이니 참고하시기 바랍니다.

 

1. svchost.exe -> Windows OS 중에서 작동하는 각종서비스를 호스팅 하는 프로세스이며, Windows OS의 서비스는 작업 관리자의 서비스 탭에서 확인할 수 있습니다. 이러한 서비스를 먼저 시작하는데 사용되는 것이 svchost.exe 입니다. 서비스의 처리 부하가 높아지면 이 svchost 프로세스의 CPU 사용률이 상승하게 됩니다. 하나의 Windows 시스템에서 서비스가 2개로 그룹화 되어 실행되며, 각 그룹마다 svchost.exe 프로세스가 하나씩 생성되게 됩니다. 즉 하나의 시스템에서 서비스되는 항목이 많은 경우 다수의 svchost.exe 프로세스가 생성되게 됩니다.

 

2. TrustedInstaller / TiWorker / msiexec -> Windows OS에 새로운 프로그램이나 모듈 업데이트 등을 설치하는 데 사용되는 프로그램 또는 그 보조적인 과정을 진행하는 프로세스입니다. 사용자가 일반적으로 프로그램을 설치하는 경우뿐만 아니라, Windows Update 에 의한 자동 설치 진행시에도 해당 프로세스가 실행되게 됩니다.

 

3. MsMpEng -> 안티 멀웨어 소프트웨어인 Microsoft Security Essentials 의 실행 프로그램입니다. 시스템이 부팅완료 후 실행을 시작하고 항상 파일을 검사하여 악성코드에 감염되지 않았는지 감시 및 검사를 진행합니다. 일반적으로 백그라운드에서 실행되어 사용자의 작업에는 크게 영향을 주지 않도록 되어있습니다. 하지만 설치되어있는 프로그램이 많으면 수시로 스캔을 진행하여 CPU 부하가 올라가게 됩니다. 사용자가 임의의 백신을 설치한 경우에는 해당 프로세스의 작동이 중지될 수 있습니다.

 

4. SearchIndexer / SearchProtocolHost / SearchFilterHost -> 파일 검색 속도를 올리기 위해 인덱스를 만드는 과정입니다. 새로운 파일이 추가 또는 수정 된 경우에 디스크에서 인덱스 작업을 진행하여 CPU부하가 생기게 됩니다. 부하를 줄이기 위해서는 제어판에서 디스크의 색인 옵션으로 검색을 하지않도록 설정을 하시면 CPU 부하를 줄일 수 있습니다.

 

5. wuauclt -> Windows Update 에 관련된 프로세스입니다. 새로운 Windows Update에서 업데이트가 있는지 시스템에 적용할지 등의 판단 및 처리를 합니다. Windows Update의 처리는 과거 몇 차례 CPU 사용률이 비정상적으로 상승하는 문제가 보고되었습니다. CPU 사용률의 증가를 줄이기 위해서는 Windows Update를 수동 또는 업데이트 안함으로 설정하여 사용자가 원하는 시점에 업데이트를 진행합니다.

 

6. mscorsvw / ngen -> .NET Framework를 사용한 프로그램의 최적화 프로세스입니다. .NET Framework를 사용하는 프로그램이나 패치 등을 설치 또는 업데이트 후 프로세스가 자동으로 실행되게 됩니다.

 

7. taskhost -> Windows OS의 정해진 스케쥴 작업을 시작하는 프로세스입니다. 사용자가 정의한 시간에 컴퓨터가 로그인 되어 있는 경우에 실행되는 프로세스입니다. 지정된 시간에 taskhost.exe 가 실제 작업을 담당하는 프로세스를 실행하도록 되어있습니다. 작업 관리자에서 실행된 프로세스 taskhost 는 별도의 프로세스로 표시가 되며 일반적으로 taskhost 자체는 프로세스를 많이 차지하지 않습니다. 스케쥴에 설정된 작업에 문제가 생기게 되면 다시시작 / 중지 등의 작업을 계속 시도하게 되어 CPU 부하가 올라가게 됩니다.

 

8. System -> 해당 프로세스는 Windows OS의 커널에서 실행되는 처리를 담당하는 프로세스입니다. 프로세스 ID는 항상 4에서 해당되는 가상적인 과정이며, 실행 이미지 파일은 존재하지 않습니다. 일반적으로 커널의 처리는 부하가 ​​높아지지 않고 System 프로세스가 CPU 사용률의 상위에 표시되지는 않습니다. 하지만 간혹 장치 드라이버 등이 문제가 생기면 CPU를 비정상적으로 점유 하는 문제가 생깁니다. 이런 경우 System 프로세스가 CPU 사용률이 높게나오거나, 높은 CPU 사용률이 계속 지속되어 시스템이 느려지는 문제가 발생할 수 있습니다. 튜닝이 되거나 디지털 서명이 안된 비서명 드라이버는 CPU 부하가 올라갈 수 있는 위험이 있으니 제조사에서 제공하는 정식드라이버를 설치합니다.

 

9. System Idle Process -> 간혹 CPU를 제어하는 System Idle Process 라는 프로세스가 상단에 있는 경우가 있습니다. CPU 사용률도 90 % 이상으로 되어있는 경우가 있으나 일종의 가상적인 과정입니다. 실제로 존재하는 프로그램이나 프로세스는 아니며, 실행하는 프로세스가 하나도 없는 경우에 가상으로 System Idle Process 라는 프로세스가 실행되는 것처럼 보이게 됩니다. 즉 이 프로세스가 90% 이상 실행되는 것은 실제로 CPU가 90% 이상 대기 상태라는 것을 나타내며, 수치가 일시적으로 높게 보일 수 있는 부분이니 CPU 부하를 걱정하지 않으셔도 됩니다.

 

10. System Interupt -> 시스템의 인터럽트도 편의상 프로세스로 표시되어 있지만 실제로는 해당 프로세스 즉 실행파일은 없습니다. 인터럽트 지연 프로시저 호출 처리에 얼마나 많은 CPU를 소비하고 있는지 확인할 수 있습니다. 인터럽트는 장치 등으로부터 송신되는 이벤트 트리거이며, 예를 들어 데이터의 준비되어있는 오류가 발생한 경우 OS에 그것을 알리기 위해 사용됩니다. 인터럽트 처리 루틴에서 장치의 상태를 확인하고 데이터를 읽어내는 준비를 하고 인터럽트 처리를 완료합니다. 시스템의 인터럽트 프로세스의 CPU 사용률이 높아진다는 것은 인터럽트의 지연 처리 절차가 남아 있는가를 나타냅니다. 성능이 낮은 CPU에서는 이 프로세스의 처리에 시간이 걸리기 때문에 시스템의 인터럽트 프로세스의 CPU 사용률이 높아지게 됩니다.

 

감사합니다.

+ Recent posts