언제부터인가 맥이 잠자기를 유지하지 못하는 듯한 느낌이 있어서(HDD가 멈췄다가 돌아가는 소리가 자주 들리는 듯 했다) 분석을 좀 해 보니 가관이었다. 맥이 잠자기를 유지하지 못하고 1분정도 주기로 계속 깨어나고 있었다.
아래 로그를 보면 Network 인터럽트로 인해서 맥이 깨어났다는 것을 확인할 수 있다. 로깅 시간을 보면 거의 1분 마다 한번씩 로그가 나온다. 로그에 보이는 초단위의 시간이 잠자기를 유지한 시간이다. -_-
imac:~ cky$ pmset -g log | grep "Entering Sleep state" 2017-03-24 07:19:53 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 9 secs 2017-03-24 07:20:47 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 12 secs 2017-03-24 07:21:45 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 12 secs 2017-03-24 07:22:43 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 11 secs 2017-03-24 07:23:40 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 13 secs 2017-03-24 07:24:39 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 13 secs 2017-03-24 07:25:38 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 12 secs 2017-03-24 07:26:36 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 12 secs 2017-03-24 07:27:34 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 11 secs 2017-03-24 07:28:31 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 15 secs 2017-03-24 07:29:32 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 11 secs 2017-03-24 07:30:29 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 12 secs 2017-03-24 07:31:26 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 12 secs 2017-03-24 07:32:24 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 17 secs 2017-03-24 07:33:27 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 13 secs 2017-03-24 07:34:26 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 13 secs 2017-03-24 07:35:25 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 15 secs 2017-03-24 07:36:25 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 8 secs 2017-03-24 07:37:19 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 7 secs
먼저 시스템 환경 설정에서 Network 요청에 의한 깨우기를 꺼봤다. 그랬더니 역시나 잠자기가 유지가 된다. 뭔가 Network 패킷에 의해서 깨어나는 것은 확실해 보였다.
다음으로 tcpdump를 실행해보았다. 그랬더니 이상한 IP로부터 ssh 연결이 끊임없이 들어오고있는 것이 아닌가. ssh 연결을 위한 22번 포트는 내가 외부에서 사용할 목적으로 열어둔 포트다. 그런데 이 포트로 요청이 계속 들어오니 맥은 깨어날 수밖에 없는 것이었다.
IP를 차단할 수 있는지를 타임캡슐에서 살펴보았는데 firewall 기능이 거의 없다시피해서 따로 설정하는 메뉴가 없는 것 같았다. iptime같은 공유기를 쓴다면 IP를 걸러낼 수 있지 않을까 싶다.
도통 패킷이 멈출 기미가 안 보여서 포트를 변경하기로 했다. 외부 포트를 22번이 아닌 다른 것을 쓰고 그 포트를 내부 22번으로 연결시켰다.
ssh 연결 요청이 맥에 도착하지 않으니 맥이 잠자기를 잘 유지한다. 로그를 보니 두시간 마다 한번씩 깨는데, 이는 요청시 깨우기 및 Bonjour 잠자기 프록시에 의한 정상적인 동작이다. (https://support.apple.com/ko-kr/HT201960)
아래는 ssh 포트 변경 후 어젯밤 상황을 잡은 로그다. 잠자기가 길게 유지되는 것을 명확히 확인할 수 있다. Idle sleep(아무것도 하지 않아 잠자기에 들어가는 것)으로 잠자기에 진입 후 아침까지 계속 잠자기가 유지되었다. 🙂
imac:~ cky$ pmset -g log | grep "Entering Sleep state" 2017-03-24 17:41:57 +0900 Sleep Entering Sleep state due to 'Software Sleep pid=104': Using AC 566 secs 2017-03-24 18:10:31 +0900 Sleep Entering Sleep state due to 'Idle Sleep': Using AC 5446 secs 2017-03-24 19:42:02 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 5315 secs 2017-03-24 21:11:23 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 4558 secs 2017-03-24 23:49:20 +0900 Sleep Entering Sleep state due to 'Idle Sleep': Using AC 4793 secs 2017-03-25 01:09:59 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 6443 secs 2017-03-25 02:58:08 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 6443 secs 2017-03-25 04:46:17 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 6443 secs 2017-03-25 06:34:26 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 6443 secs 2017-03-25 08:22:35 +0900 Sleep Entering Sleep state due to 'Maintenance Sleep': Using AC 5109 secs