맥북프로 재부팅 문제 해결 삽질기

개발장비로 맥북프로를 사용한지 7년 정도 되었습니다. 현재 제가 사용하고 있는 노트북은 맥북 프로 15인치 2013 Early 버전입니다. 제가 맥북을 주 개발 장비로 사용하는 주요 이유는 다음과 같았습니다.

  • Hadoop 및 관련 시스템에 대한 개발 및 운영을 하기 위해서는 Shell 환경이 필요
  • 이런 개발 환경과 동시에 발표자료 작성 등의 업무 환경도 필요
  • 외부 주변 장치(모니터, 마우스, 키보드 등)의 도움없이 노트북 그 자체만으로 개발할 수 있는 환경
    • 실제로 필자는 외부 모니터를 사용하고 있지 않습니다. 대신 해상도를 최고 해상도로 해서 사용하고 있습니다.
    • 맥북의 터치패드는 정말로 좋습니다. 마우스가 없어도 충분히 개발 작업을 할 수 있습니다.

이런 이유때문에 필자에게 누군가가 개발 장비를 구매할 때 어떤 장비가 좋을까요? 라고 질문하고 한치의 망설임없이 맥북프로 15인치를 권합니다.

맥북 프로 재부팅 문제 발생

저에게 이렇게 중요한 장비인 맥북 프로가 한달 전부터 갑자기 문제가 생겼습니다. 사용 중 갑자기 전원이 나간것 처럼 재부팅이 계속되었습니다. 증상은 대략 다음과 같았습니다.

  • 사용 중 2 ~ 3초 정도 마우스가 움직이지 않음(즉, 시스템 전체가 동작하지 않음)
  • 재부팅
  • 재부팅 중 부팅 Progress bar가 50% 정도 왔을 때 화면이 꺼짐
  • 어떤 경우에는 화면만 꺼지고 어떤 경우에는 전부 꺼짐
    • 화면만 꺼졌는지 확인하는 것은 caps lock 키를 눌렀을 때 녹색 불이 들어오면 화면만 꺼진 상태
  • 재부팅을 여러번 시도하면 한번 정도는 정상적으로 부팅이 됨
  • 이 상태에서 사용 중에 다시 재부팅 되는 증상이 하루에 몇번 이상 발생됨

4년 이상 지난 노트북이지만 여전히 성능에는 특별한 불만이 없었고 아직 몇년 이상 더 사용해도 특별하게 불만이 없을 것 같아서 어떻게 해서든지 이 문제를 해결하려고 시도하였습니다. 새로운 맥북을 구매하지 않기로 한 가장 큰 이유는

  • 거지 같은 키보드 터치감
  • 키보드 입력 시 방해가 되는 쓸데 없이 큰 터치바
  • 잘 사용하지 않을 것 같은 터치패드와 ESC 키 입력의 불편함

입니다. 다음 버전에서는 이런 문제가 개선되었으면 하는데, 애플에서 그렇게 하지 않겠죠?

맥북 공식 A/S  센터를 찾아 갈까도 생각했지만 제가 중국과 한국을 왔다 갔다 하면서 일을 하고 있기 때문에 센터 찾아가는 것은 무리라고 생각했습니다. 게다가 애플 케어도 없고 공식 서비스 기간은 지났고, 애플 서비스의 악명을 알고 있는 터라 직접 해결해보기로 했습니다.

GPU 에러 메시지

이 문제에서 가장 먼저 의심했던 부분은 GPU 입니다. 문제가 발생한 이후 재부팅을 성공하면 다음과 같은 에러[1]가 발생했다는 경고가 나타났기 때문입니다.

macbook_pro_gpu_panic

참고로 필자의 맥북프로는 15인치, 레티나, 2013 Early 모델, Sierra 10.12.2 입니다.

about_this_mac

이 모델은 그래픽 카드가 두개 있는 모델로 내장 그래픽 카드로 “Intel HD Graphics 4000″이 있고 별도의 “NVIDIA GeForce GT 650M” 칩을 가지고 있습니다. 일단 메시지 상에 GPU가 문제라고 나왔기 때문에 다음 설정에서 옵션을 바꿔보기로 했습니다.

  • System Preference -> Energy Saver
    energy_saver

그래픽 카드가 두 개 있는 경우 맥북은 평소에는 내장 그래픽 카드를 사용하다가, 그래픽 처리가 많아지면 외부 그래픽 카드를 자동으로 사용하게 되어 있습니다. 이렇게 하는 이유는 배터리를 좀 더 오랫동안 사용하기 위함인데 외부 그래픽 카드를 사용하게 되면 배터리 소모가 심하기 때문입니다.

“Automatic graphics switching” 설정은 원래는 checked 상태인데 이 상태를 unchecked 상태로 변경해 주면 자동으로 그래픽 카드 변경하는 옵션을 사용하지 않겠다는 의미입니다. 하지만 이 설정을 바꾸는 순간 다시 재부팅되어 이 설정을 변경할 수 없었습니다. 한참 곤란을 겪다가 다른 방법을 찾기 위해 검색을 해보니 gfxCardStatus 라는 앱을 사용하면 설정이 가능하다고 해서 일단 다운로드 받아 설치를 했습니다. 이 앱의 원 저작자의 버전은 Sierra 부터는 지원하지 않지만 다른 개발자가 이어서 개발한 버전에서는 Serra 에서도 사용이 가능합니다.  gfxCardStatus 앱을 설치하면 다음과 같이 메뉴바에서 사용할 그래픽 카드를 설정할 수 있습니다.

gfxCardStatus

Integrated Only가 내장 그래픽 카드를 사용한다는 의미이고, Discrete Only가 외장 그래픽 카드를 사용한다는 의미입니다. Dynamic Switching 설정을 하면 상황에 따라 자동으로 변경하겠다는 의미입니다. 필자의 경우 위의 설정과 같이 Integrated Only로 설정하였습니다. 맥북으로 비디오, 이미지 편집 작업은 거의 하지 않고, 게임도 하지 않기 때문에 이렇게 설정하였습니다.

영구적으로 외장 그래픽 카드를 Disable 하는 방법도 있다고 하는데 이 방법은 너무 위험할 것 같고, 해도 안된다는 피드백이 많아서 도전해보지는 않았습니다.

배터리 경고

그래픽 카드에 대한 설정을 바꾸었지만 그래도 여전히 재부팅 문제는 발생하였습니다.느낌상으로는 조금 덜 자주 발생하는것 같았지만 여전히 발생 하였습니다. 시스템 정보를 한땀 한땀 보는 중에 배터리에서 다음과 같은 메시지를 발견하였습니다.

batter_info_01

상단 메뉴바 좌측 애플 로그 -> About this Mac -> System Report…

servie_battery

서로 관련은 없겠지만 혹시 배터리 문제인가 해서 이 부분은 자체 해결하기 힘들어 공식 서비스 센터를 방문하기로 했습니다. 선릉 유베이스 공식 서비스 센터를 방문하여 점검 소프트웨어를 구동시키니 일단 배터리 오류 이외에 별다른 오류는 없다고 하였습니다. 배터리 교체 비용을 문의하니 70만원[2] 이상이라고 하여 센터 배터리 교체는 포기하였습니다. 왜 이렇게 비싸냐고 물어보니 배터리만 교체할 수 없고 터치 패드 등과 일체로 되어 있어 모두 교체해야 한다는 이상한 이야기만 들었습니다. 사설로 배터리만 교체해도 20만원 정도 소요된다고 해서 배터리 부품을 주문해서 직접 교체하였습니다.  배터리 교체 관련해서는 별도로 포스팅을 하겠습니다. 대략 46,000원 정도의 비용으로 교체를 했습니다.

결론은 발열이 문제

배터리 교체를 진행하였지만 그래도 여전히 문제가 발생하였습니다. 배터리 교체시 한가지 소득이 있었다면 뒷판을 열어 보드를 봤다는 것입니다. 그리고 처음 배달된 배터리가 다른 모델이 배달 되어서 몇일 동안 배터리 없이 사용했다는 것입니다. 배터리 없이 몇일 사용하는 동안 재부팅되는 횟수가 많이 떨어졌기 때문입니다.

동일한 문제에 대해 계속 인터넷에 검색하는 중에 많은 글에서 CPU의 온도에 대한 이야기가 많이 나오는 것을 확인할 수 있었습니다. 그래서 사용 중에 맥북의 온도를 손으로 확인해보았는데 많이 뜨거워 지는 것을 확인하였습니다. 실제 맥북은 발열에 아주 취약한 디자인 입니다. 아래 커버에도 열을 외부로 내보내기 위한 홈이나 장치 등이 하나도 없습니다.

그러면 배터리를 사용하지 않는 동안에는 왜 재부팅 횟수가 줄어 들었을까? 문득 배터리 공간 만큼 내부에 여유 공간이 있으니 그 공간때문에 발열에 조금 유리하게 작용하여 재 부팅 현상이 줄어 들었지 않았을까 하는 생각을 해 보았습니다. 그래서 실험해 본 것이 하부 커버를 닫지 않고 장비를 사용해보는 것이었습니다. 커버를 닫지 않은 상태에서 여러개의 동영상을 동시에 실행하고, 다양한 부하를 주어 CPU, GPU를 많이 사용하게 하였습니다. 예상했던 대로 재부팅 현상은 발생하지 않았습니다.

최종적으로 발열이 문제인 것이 확인되는 순간이었습니다.

macbook_internal

노트북은 뚜께를 얇게 하기 위해 CPU나 GPU 바로 위에 쿨러를 올릴 수 없습니다. 따라서 위 맥북 내부에서와 같이 CPU, GPU와 쿨러를 파이프로 연결하여 파이프를 냉각하는 방식을 사용합니다. 여기서 사용되는 파이프를 Heat pipe 라고 합니다. 조금 검색해보니 LG 그램 노트북의 발열 문제를 해결하기 위해 직접 개선하신 분도 있네요.

문제 해결

문제 원인을 알았으니 해결 방법은 간단합니다. CPU, GPU가 과열되지 않도록 해주면 됩니다. 첫번째로 사용한 방법은 내장 쿨링팬을 임의로 설정하여 특정 온도 이상이 되면 빠르게 동작하게 하는 것이었습니다. 이를 위해 Macs Fan Control 이라는 앱을 설치하였습니다. 이 앱은 맥북의 CPU, GPU, 메모리 등 주요 부품의 온도에 따른 팬 속도를 설정할 수 있는 기능을 제공합니다. 이 앱 때문에 맥북에 이런 온도 정보를 관리하고 있는지도 알게 되었습니다.

macs_fan_control

이 앱을 설치한 후 온도에 따라 팬 속도를 조절하면 되는데 맥북의 각 파트의 적정온도가 어느 수준인지 알 수가 없습니다. 다시 검색을 해보니 자신들의 맥북 온도를 공유하는 사이트가 있었습니다.

macbook_pro_temperature

대략 Idle 상황에서는 40도 정도이고, 부하 상황에서는 70 ~ 90도 정도됩니다[3]. 이 정보를 참고해서 처음에는 65도가 넘으로 팬 속도를 증가하게 하고, 최대 온도를 80도로 설정하였습니다. 이 설정을 한 후에는 얼마 동안은 재부팅 증상이 발생하지 않다가 여러개의 개발 IDE 동시에 실행하고 음악 감상도 하는 등 부하가 발생하니 다시 재부팅 되었습니다. 현재에는 다음과 같은 설정으로 사용하고 있는데 거의 재부팅 현상이 발생하지 않습니다(실제는 일주일에 한두번은 발생함)

macsfancontrol_setting

  • Left Side 팬 설정
    • 센서에 따라 지정: CPU Core 2
    • 다음 온도가 되면 팬 속도를 증가: 55도
    • 최대온도: 70도
  • Right Side 팬 설정
    • 센서에 따라 지정: GPU PECI
    • 다음 온도가 되면 팬 속도를 증가: 55도
    • 최대온도: 70도

문제의 원인을 알기 전에는 재부팅 시에도 부팅이 제대로 안되는 경우가 많았는데 발열이 원인인 것이 확인되었기 때문에 선풍기 등으로 온도를 식혀주고 재부팅을 하면 정상적으로 잘 됩니다.  몇번 옵션을 바꿔가면서 문제가 발생하지 않는 최적의 온도를 찾았습니다. Macs Fan Control을 사용하여 임의로 팬 속도를 조절했을 때의 단점은 팬 소음입니다. 필자가 설정한 옵션은 평소보다 자주 팬이 돌기 때문에 소음이 거슬리기는 하는데 필자의 경우 이런데에는 다소 무디기 때문에 참을만 합니다.

두번째 해결 방법은 노트북 쿨링 패드를 사용하는 것입니다. 위의 해결 방법으로도 정말 가끔 재부팅 현상이 발생고, 팬 소음 문제도 있는데 쿨링 패드를 사용하여 이런 문제까지 해결하였습니다. 맥북이 구조상 외부 쿨링 패드에 효과가 크지 않다고 하는데 그래도 하지 않는 것 보다는 좋을 것 같아서 쿨러를 구매하였습니다. 외장 쿨링 패드는 사무실이나 집이 아는 곳에서는  사용할 수 없는데 까페 등에서 작업을 하는 경우 노트북 뒷부분에 받침대를 두어 테이블과 노트북 바닥에 공간이 생기도록 하여 조금이나마 발열에 도움이 되도록 하고 있습니다.

소감

한달여 남짓 맥북 프로 재부팅 문제를 해결하면서 대략 다음과 같은 것을 느꼈습니다.

  • 애플의 A/S 정책은 정말 거지 같다. 애플에 대응할 만한 다른 제조업체, 운영체제 등이  나왔으면 하는 바램이다. 아니면 리눅스 기반 장비가 좋아 졌으면…
  • 새로운 맥북의 키감은 정말 거지 같다. 터치바는 쓸모 없고 가격만 올린다.
  • 내가 원하는 것은 예쁜 것이 아니라 효율적인 장비를 원한다. 애플은 이쁜것만 찾지 말고 기본에 충실했으면 한다. 바닥에 구멍 좀 뚤어 주던가 아니면 옆에 라도 구멍을 뚤어 주던가, 뒤 부분 방열 구멍 크게 하던가 대책을 세워라.
  • 프로그램의 버그와 마찬가지로 이런 일에도 원인을 알아야 해결책을 찾을 수 있다. 하지만 원인을 찾는다고 모두 해결책을 찾을 수 있는 것은 아니다.
  • 의외로 동일한 문제를 겪고 있는 사용자가 많다. 그래도 애플은 이런 문제 해결에 소극적이다.

맥북이 재부팅 된다고 해서 반드시 발열 문제라고 할 수 없지만, 재부팅으로 고생하시는 분들에게 이글이 조금이나마 도움이 되었으면 합니다.

Update

2018.02.05: 글 공유 이후 여러분이 CPU, GPU의 서멀그리스를 재도포하면 좋다고 하셔서 찾아보니 벌써 시도를 하신 분들이 있네요.

각주

[1]: 당시 에러 메시지를 저장해놓은 화면이 없어서 제 맥북이 아닌 인터넷에서 검색한 이미지를 사용했습니다.

[2]: 정확한 금액은 기억나지 않지만 금액을 듣자 마자 배터리 교체를 포기하게 만든 금액이었습니다.

[3]: 이렇게 문제 해결을 하고 같은 사무실에 있는 다른 분들의 맥북 온도를 확인해보았습니다. 2013년, 2014년, 2015년 모델 모두 확인해보았는데 어떤 장비는 부하 상황에서 90도까지 올라가도 문제가 발생하지 않았고 어떤 장비는 70도 수준까지만 올라가는 장비도 있었습니다. 즉, 모델에 상관없이 장비별로 다른 온도 패턴을 보이고 있었습니다.