kernel_task는 macOS에서 가장 많은 질문을 받는 프로세스 중 하나입니다. 활성 상태 보기(Activity Monitor)를 열어보면 갑자기 CPU 점유율이 수백 퍼센트에 달하는 것을 볼 수 있는데, 도대체 왜 이런 일이 발생하는 걸까요? 이 글에서는 kernel_task의 정체부터 높은 리소스 사용량을 해결하는 다양한 방법까지 자세히 알아보겠습니다.
kernel_task란 무엇인가?
커널(kernel)은 모든 운영체제(OS)의 핵심으로, CPU·메모리 등 하드웨어와 시스템에 설치된 소프트웨어 애플리케이션 사이에서 중재 역할을 합니다. Mac의 전원이 켜지면 가장 먼저 시작되는 것이 바로 커널이며, 시스템에서 이루어지는 거의 모든 작업은 어느 시점에는 반드시 커널을 거치게 됩니다.
커널은 실행 데몬과 서비스, 메모리 관리, 네트워킹 등을 모두 제어합니다. 필요한 작업을 시작하고 종료하며, 작업이 끝난 후에는 메모리를 정리합니다. 이러한 백그라운드 활동 전체가 애플의 '작업 관리자'에 해당하는 활성 상태 보기에서 하나의 이름, 즉 kernel_task로 표시되는 것입니다. 네트워크를 통한 데이터 송수신, 파일 읽기/쓰기 등 다른 애플리케이션이나 시스템 소프트웨어의 작업들도 여기에 포함됩니다.
활성 상태 보기로 확인하는 방법
4K 영상 변환처럼 많은 연산 능력을 요구하는 작업을 할 때, 갑자기 속도가 느려지면 활성 상태 보기를 열어 원인을 확인해볼 수 있습니다. Cmd + Space를 누르고 "activity"라고 입력하면 바로 실행할 수 있으며, 응용 프로그램 > 유틸리티 폴더에서도 찾을 수 있습니다.
%CPU 열 제목을 클릭하면 프로세서 사용률 순으로 프로세스가 정렬됩니다. 많은 연산 능력을 사용하는 프로세스가 상단에 표시되며, 컴퓨터가 백그라운드에서 다양한 작업을 수행함에 따라 목록은 계속 움직입니다.
CPU 사용량이 높은 것이 문제가 되는 경우는 대체로 예상치 못한 상황일 때입니다. 게임을 하거나 브라우저에서 영상을 보거나 영상을 편집할 때 리소스가 많이 소모되는 것은 당연합니다. 하지만 사파리 탭 하나나 단일 Mac 프로세스가 지나치게 많은 자원을 차지한다면 무언가 잘못되었을 가능성이 큽니다.
문제가 되는 프로세스는 클릭한 후 화면 좌상단의 "X" 버튼을 눌러 강제 종료할 수 있습니다. 불행히도 kernel_task는 운영체제의 핵심이기 때문에 이런 방식으로 종료할 수 없습니다.
kernel_task가 CPU를 많이 사용하는 진짜 이유
kernel_task는 단일 프로세스라기보다 하나의 이름 아래 묶인 여러 프로세스의 집합입니다. macOS는 백그라운드에서 네트워크 데이터 송수신, 파일 읽기/쓰기, Spotlight 검색을 위한 새 폴더나 디스크 색인 생성 등 온갖 작업을 처리합니다.
이 프로세스는 메모리 탭에서 사용 가능한 RAM을 상당 부분 차지하기도 하는데, 이는 크게 걱정할 필요가 없습니다. RAM 사용량은 필요에 따라 오르내리기 때문입니다. 반면 높은 CPU 사용량은 시스템 전체를 멈추게 하고, 심한 경우 완전한 시스템 충돌로 이어질 수 있습니다.
흥미로운 사실은, 이것이 사실 운영체제가 CPU 과열을 막기 위해 의도적으로 하는 행동이라는 점입니다. kernel_task는 CPU 집약적인 프로세스가 CPU를 사용하지 못하도록 점유함으로써 CPU 온도를 관리하는 역할을 합니다. 즉, kernel_task 자체가 원인이 아니라 오히려 해결책인 셈입니다. CPU 온도가 내려가면 kernel_task도 자동으로 CPU 사용량을 줄입니다.
따라서 Mac이 느려지지 않았다면 kernel_task가 CPU를 사용하는 것 자체는 정상이므로 걱정할 필요가 없습니다. 커널은 사용하지 않는 메모리를 파일 캐싱 등에 활용하고, 현대적인 운영체제는 때때로 일부 CPU 자원을 사용하기 마련입니다. 위험 구간을 벗어나면 모든 것이 정상으로 돌아옵니다.
그러나 kernel_task가 지속적으로 시스템 자원의 대부분을 차지하고 Mac까지 느려진다면 문제가 있을 가능성이 높습니다. 커널은 Mac을 재시작해야만 재시작할 수 있으며, 경우에 따라 재시작만으로도 문제가 해결됩니다.
kernel_task 리소스 점유 문제 해결 방법
높은 CPU 및 리소스 사용량을 해결하는 가장 일반적인 방법들을 소개합니다.
- Mac 재시작: kernel_task는 곧 운영체제이므로, 프로세스를 종료해 자원을 확보하는 가장 좋은 방법은 간단한 재시작입니다. 대부분의 문제가 즉시 해결됩니다.
- 악성코드 검사: 문제의 원인이 될 수 있는 멀웨어가 있는지 Mac을 검사해 보세요.
- 세이프 모드로 부팅하여 kext 확인: 특별한 작업을 하지 않는데도 kernel_task가 많은 CPU/메모리를 사용한다면 다른 문제가 있는 것입니다. 흔한 원인은 macOS에서 "kexts"라고 불리는 서드파티 커널 확장입니다. 이 모듈은 하드웨어 드라이버와 일부 소프트웨어로 커널과 직접 통신하는데, 결함이 있는 kext는 kernel_task가 과도하게 CPU를 점유하게 만듭니다. 이를 테스트하려면 Mac을 세이프 모드로 부팅하세요. Mac을 종료한 후 Shift 키를 누른 상태로 다시 켜면 로그인 화면에 "세이프 부트(Safe Boot)"가 표시됩니다. 세이프 모드에서는 서드파티 kext가 활성화되지 않으므로, 세이프 모드에서 문제가 없다면 원인을 찾은 것입니다. 최근 설치한 서드파티 드라이버/소프트웨어를 제거하고 개선되는지 확인하세요.
- EtreCheck으로 진단: EtreCheck를 사용하면 수십 가지 진단을 실행하고 시스템에 설치·실행 중인 모든 kext 목록을 확인할 수 있습니다. 문제를 일으킬 것으로 의심되는 항목을 제거하고 문제가 해결되는지 확인하세요.
- Flash 제거: CPU를 많이 사용하는 악명 높은 애플리케이션 중 하나가 Flash입니다. Flash나 브라우저 탭이 kernel_task와 함께 CPU를 점유한다면 Flash를 완전히 제거하거나 비활성화하세요. 버그투성이인 Flash가 CPU를 사용하지 않게 되면, 이를 막기 위해 열심히 일하던 kernel_task도 함께 진정됩니다.
- 시작 항목 정리 및 디스크 공간 확보: 불필요한 시작 항목을 제거하고 하드 드라이브 공간을 확보하세요.
- NVRAM 초기화: Mac의 NVRAM을 초기화해 보세요.
- SMC 초기화: 시스템 관리 컨트롤러(SMC)를 초기화합니다.
- 외부 온도 관리: 주변 환경 온도도 컴퓨터 온도에 영향을 줍니다. 에어컨 등으로 실내 온도를 인위적으로 낮추면, 열 관리를 위해 설계된 성능 저하(slowdown)를 줄일 수 있습니다.
- 팬 청소: MacBook의 팬을 점검하고 먼지를 제거하세요. 방열판(heatsink)도 함께 청소하고, 서멀 구리스(thermal paste)가 마르지 않았는지 확인하세요. 팬 속도를 높이는 것도 도움이 됩니다.
- 쿨링 패드 사용: 노트북이라면 쿨링 패드를 사용해 보세요.
- 충전 케이블 위치 변경: 주변 기기를 연결한 상태에서 충전으로 인해 섀시 특정 부위의 온도가 높아져 문제가 발생했을 수 있습니다. 충전 케이블을 왼쪽 포트에서 오른쪽 포트로 옮기는 것만으로도 Mac을 식혀 문제를 해결할 수 있습니다. MagSafe 충전을 사용하는 기기라면 배터리가 가득 찰 때까지 왼쪽 포트의 주변 기기를 분리해 보세요.
- 캐시 삭제: 터미널에서 다음 명령어를 실행해 캐시를 삭제합니다.
rm -rf ~/Library/Caches
- Safari 캐시 삭제: Safari가 원인일 가능성이 있다면 Safari 캐시도 삭제해 보세요.
- 전원 어댑터 재설정: 특히 AC 전원이 불안정한 환경에서 유용합니다. 노트북이 '연결됨'으로 표시되지만 충전되지 않는다면, 전원 공급 장치가 신뢰할 수 없는 AC를 감지해 충전을 중단한 것일 수 있습니다. 해결하려면 전원 어댑터의 양쪽 연결을 몇 초간 분리했다가 다시 꽂으면 됩니다. 그러면 노트북이 다시 충전을 시작하고, kernel_task의 CPU 점유가 멈추며 팬도 덜 돌아가게 됩니다.
주의: 위험한 우회 방법
일부 시스템 파일을 이동시키는 기묘한 우회 방법도 존재하지만, 시스템 파일인 만큼 문제가 매우 심각한 경우가 아니라면 시도하지 않기를 권장합니다.
- 왼쪽 상단 애플 로고 아래 "이 Mac에 관하여"로 이동해 "추가 정보"를 선택합니다.
- "시스템 리포트" 옵션을 클릭합니다.
- "모델 식별자(Model Identifier)" 뒤에 표시되는 값을 적어둡니다.
- 다음 경로로 이동합니다.
메인 드라이브 > System > Library > Extensions > IOPlatformPluginFamily.kext > Contents > Plugins > ACPI_SMC_PlatformPlugin.kext > Contents > Resources > (3번 단계에서 적어둔 폴더)
- 컴퓨터를 재시작하면 완료됩니다.
위의 모든 방법으로도 해결되지 않는다면, 시간을 낭비하지 말고 macOS를 처음부터 재설치하거나 Mac을 초기화하거나 애플 스토어 방문을 고려해 보세요.