맥북 kernel_task 과점유 현상

@JasonLee · February 16, 2022 · 7 min read

서론
본론
커널테스크 (kernal_task) 는 무엇일까?
통상적이지만 효과가 없거나 불가능한 해결책들
나만의 진짜 해결책
결론

서론

내 개발환경을 보자면, 2019(Late) Macbook Pro 16' 를 클렘쉘 모드로 덮어놓고, 외장모니터 2개, 외장 키보드, 외장 마우스 를 연결하여 사용하고 있다.

하지만 줌(Zoom) 을 사용한다던가, 내가 사용하는 무거운? IDE 인 Webstorm 으로 개발을하며, 따로 서버까지 여는경우에는 타자치기가 힘들정도로 버벅이고 맥북에서는 비행기 이륙하는 소리가 났다. 이러한 현상이 하루에도 수십번 일어나다 보니 도저히 나의 인내심이 견딜 수 없는 지경까지 도달하였다.

Activity Monitor 를 사용하여 무슨 문제가 있나 확인해보니 kernel_task 란 녀석이 cpu 사용량을 무려 900% 를 사용하고 있다고 떡하니 적혀있었다.


본론

커널테스크 (kernal_task) 는 무엇일까?

커널테스크란 linux 의 최상위 제어권자이자 핵심 기능이다.
cpu 의 온도센서 중 하나라도 일정 수치를 넘게되면 내부적인 발열로 인하여 컴퓨터의 고장을 방지하기위해 임의로 가상으로 커널테스크 프로세스 자체에 과부화를 걸게된다.
이로인하여 컴퓨터는 쓰로틀링(throttling) 이 걸리게 되며, 정상적인 작동을 할 수 없는 환경을 마주치게 되며, cpu 를 점유하고 있던 다른 프로세서들의 작동에 제한이 걸리며 cpu 의 온도가 정상적으로 돌아오게 만드는 녀석이라고도 부를 수 있다.

통상적이지만 효과가 없거나 불가능한 해결책들

그렇다면 커널테스크가 점유율을 높여 다른 프로세스들의 작동을 제한하면,
우리는 매번 하루에 수십번씩 '그렇구나~ 그럼 잠시 작업을 멈춰야 겠다!' 하지 않을것이지 않은가?

이를 위해 인터넷을 뒤져보니

  1. SMC (시스템 관리 컨트롤러) 초기화
  2. 비정상적인 OS 접근으로 kernel_task 의 자체적인 작업을 제한
  3. 하판 오픈 (뚜따?) 이후 써멀패드 부착

1번의 초기화를 Apple 공식홈페이지의 안내에 따라 실행하보았지만 효과는 전혀 없었다.

2번은 만일 차후에 무거운 작업을 돌리다 과도하게 cpu 의 온도가 치솟았을때 이를 제어해줄 kernel_task 가 없다면 고장을 야기할 수 있다.

3번은 Apple 정책상 임의로 개인이 하판을 오픈하게 될경우 AS 를 받을 수 없게된다.

이로인해, 나는 다른 방법을 생각해야 했으며,
단순하게 생각하면, 결국 kernal_task 의 과점유 현상은 즉, 온도 와 밀접하게 관련이 있다.
온도를 잡으면 모든것이 해결되는 것 아닌가?
지금부터 내가 외장모니터 2개, 외장 키보드, 외장 마우스 를 사용하며 webstorm 으로 작업을 하는 도중에도 발열관리를 완벽히 잡은 개인적인 경험에 대해 써보려고 한다.

나만의 진짜 해결책

  1. 맥북프로는 팬이 내부에서 돌아감에 따라 열이 뒤쪽 힌지부분으로 나오게 되며,
    하판 자체에는 구멍이 일절 없다. 즉, 일반적인 노트북용 쿨러 는 저어어엉말 코딱지만한 효과밖에 줄 수 없다.
    하지만 이점을 이용하여 물리적으로 지우개 등을 이용하여 바닥에서 맥북을 공중으로 띄워놓는다. 이정도만 해줘도 발열이 어느정도 잡힐 것이라고 나는 확신한다.
  2. Macs Fan Control 이라는 프로그램을 사용하여 임의로 맥북의 팬 속도를 일정하고 강하게 조절할 수 있다. 나는 무거운 프로그램을 돌릴때는 항상 Full blast 에 맞추어두고 사용한다.
  3. 물론 장점이겠지만 맥북 프로에 들어간 Intel ProcessorTurbo Boost 기능을 가지고 있고, 이를 자기 마음대로 적재적소에 활용한다.
    주로 무거운 프로세스를 돌릴때 사용하는데 문제는 Turbo Boost 가 작동될 시점에 cpu 의 온도는 순간적이지만 기하급수적으로 상승하고, 이는 곧 cpu 의 온도 상승으로 직결된다. 이를 방지하기 위해 Turbo Boost Switcher 라는 프로그램을 사용하여 꼭 필요한 경우를 제외하고는 항상 Turbo boost mode 기능을 꺼준다. 이로인하여 작업이 느려졌다고 채감한적은 단 한번도 없었다.


결론

정말 마음먹고 거금을 들여 산 나의 맥북이 산지 반년도 지나지 않았는데 항상 끙끙대고 힘들어 하는 모습에 정말 몇달동안 속상함을 넘어 분노가 치밀었다. 이로인해, 나는 거의 한달동안 모든 리소스를 찾아가며 이에대한 해결책을 찾으려 노력했고, 이 과정에서도 개발적인 지식이 아니더라도 꽤 많은 지식을 얻었다고 생각한다. 이 글을 읽고 한분이라도 어서 광명을 찾으시길 기원하며...

@JasonLee
Hello :) I'm Jason Lee and currently focusing on React.js.