Windows PC를 사용하다 보면 작업 관리자에 System (NT Kernel & System)이라는 프로세스가 평소보다 비정상적으로 높은 CPU 사용량(약 15~30%)을 차지하는 현상이 나타날 수 있습니다.
시스템 프로세스란 무엇인가?
먼저 알아두어야 할 점은, 시스템 프로세스는 Windows의 핵심 구성 요소라는 사실입니다. 이 프로세스는 커널과 드라이버 코드, 그리고 시스템 스레드를 담당하며, 정상적인 상태에서는 CPU 사용량이 0% 수준으로 거의 없어야 합니다.
주의: 문제 해결을 위해 이 프로세스를 강제 종료하거나 삭제하려고 시도해서는 안 됩니다. Windows 운영체제의 필수 프로세스이기 때문입니다.
가장 흔한 원인: 하드웨어 드라이버
이 문제는 대부분 손상되었거나 오래된 하드웨어 드라이버, 즉 커널 모드 드라이버의 오류로 인해 발생합니다. 다음 두 가지 사항부터 먼저 확인해 보세요.
1. 최근 설치한 새 하드웨어 확인
최근 그래픽 카드, 하드 디스크, 사운드 카드, TV 튜너 카드 등 새로운 하드웨어를 설치했나요? 그렇다면 제조사 공식 웹사이트에서 최신 드라이버를 다운로드해야 합니다. 하드웨어와 함께 제공된 CD의 드라이버는 이미 오래되었을 가능성이 높습니다.
2. 최근 업데이트한 드라이버 확인
반대로 드라이버를 업데이트한 직후 CPU 사용량이 급증했다면, 최신 드라이버 자체가 문제일 수 있습니다. 이 경우 장치 관리자에서 해당 드라이버를 이전 버전으로 롤백한 후 문제가 해결되는지 확인해 보세요.
실제 사례를 들자면, 새 그래픽 카드를 설치하고 CD에 담긴 드라이버를 설치한 사용자에게 이런 현상이 나타났습니다. 최신 드라이버가 아니었고, 커널 모드 드라이버였기 때문에 시스템 프로세스의 CPU 사용량이 급증하게 된 것입니다.
KrView(커널레이트 뷰어)로 원인 드라이버 찾기
어떤 드라이버가 문제인지 알 수 없다면, 좀 더 전문적인 방법으로 정확한 원인을 찾을 수 있습니다.
1단계: KrView 실행하기
Microsoft에서 무료로 배포하는 KrView(Kernrate Viewer)를 다운로드합니다. 명령줄 도구이므로 명령 프롬프트를 열고 인수 없이 프로그램을 실행하면 됩니다. 실행 결과에는 커널에서 가장 많은 호출(hit)을 기록한 디바이스 드라이버 목록이 표시됩니다.
목록의 첫 번째 항목인 ntkrnlpa는 Windows 커널 자체이므로 무시해도 됩니다. 그 다음에 나오는 드라이버들을 주목하세요. 예를 들어 b57nd60x 같은 이름이 상위에 나타난다면, 이 드라이버가 어떤 하드웨어용인지 확인해야 합니다.
2단계: Process Explorer로 드라이버 확인하기
드라이버 파일명만으로는 어떤 하드웨어의 드라이버인지 알기 어렵습니다. 이때 Microsoft의 또 다른 무료 도구인 Process Explorer를 활용합니다.
- Process Explorer를 다운로드하여 설치하고 실행합니다.
- 메뉴에서 DLL 보기(View → Show Lower Pane, Lower Pane View → DLLs)를 엽니다.
- 로드된 드라이버 목록에서 의심되는 .sys 파일을 찾습니다.
예를 들어 b57nd60x.sys 파일은 Broadcom NetXtreme 기가비트 이더넷 네트워크 카드의 드라이버임을 확인할 수 있습니다. 원인을 찾았다면 이제 해당 네트워크 카드의 최신 드라이버를 설치하여 CPU 사용량 급증 문제를 해결하면 됩니다.
드라이버 업데이트가 어렵다면?
업데이트된 드라이버를 찾을 수 없거나 해당 하드웨어가 꼭 필요하지 않다면, 다른 해결 방법도 있습니다.
- 장치 관리자에서 해당 하드웨어를 사용 안 함으로 설정
- 시스템에서 해당 하드웨어를 물리적으로 제거
이 방법들로도 문제가 해결되지 않는다면, Windows를 클린 부팅 상태에서 시작하여 서드파티 드라이버 충돌 여부를 확인하거나, 시스템 파일 검사기(sfc /scannow)를 실행해 손상된 시스템 파일을 복구하는 것도 고려해 볼 만합니다.