- 작성시간 : 2018/10/11 11:23
- 퍼머링크 : mcchae.egloos.com/11310690
- 덧글수 : 4
맥에서 개발을 주로 docker 환경에서 개발하고 있습니다.








그동안 큐베(Kubernetes) 를 거의 사용하지 않고 필요시 Swarm 을 이용해 왔으나,
아무래도 대세인 쿠베를 거스를 수 없을 것 같아 사용해 보려고 하는데,
문제가 있습니다.

우선 디폴트로 위와 같이 동작을 시켰습니다. (Swarm 대신 Kubernetes 를 선택해도 동일했습니다)
위와 같은 상황에서 CPU 확인을 해 보면,

기본적으로 com.docker.hyperkit 이라는 프로세스가 상시 30~50 을 그냥 먹고 들어갑니다.
구글 검색을 해 보았더니 아직 깨끗히 해결되지 않은 상태네요.
IO 가 효율적이지 못해서 그렇다, 아니면 다른 문제가 의견이 분분한데 깨끗이 Close 된 것은 없는
상태인 것 같습니다. (이 글을 쓰는 2018년 10월 11일 현재)
그러다가 우선은 다른 방법으로 CPU 점유율을 제한하는게 어떨까 생각이 들었습니다.
예전 리눅스에서 CPU 제한을 살펴본 것 처럼 살펴보니,

cputhrottle 이라는 유틸이 있더군요.
헌데 com.docker.hyperkit 프로세스의 PID를 찾아 제한을 걸려하면,

위와 같이 오류가 발생했습니다.
좀 더 다른 것을 살펴보니,

AppPolice 라는 것을 찾았습니다. (앱스토어에는 없고 github에서 받았습니다)

dmg를 다운받아 Applications 에 복사하고, (최초에는 마우스 오른쪽 단추로 열기를 하여 열기 수행) 실행하면 메뉴바에 벨트 같은 것이 보이고,

설정은 위와 같이 주었습니다.

그 다음 해당 프로세스를 찾아 마우스 오른쪽 단추를 누르고 제한을 걸면 CPU가 점차로 줄어들면서 약 30초 후에는 제한된 CPU로
수렴하는 것을 확인할 수 있었습니다.
다른 프로세스 들 중에서도 너무 과도하게 CPU를 확 사용하는 프로세스가 있다면 제한을 하면 되겠다 생각이 드네요.
암튼 일단은 이렇게 해서 필요한 작업을 하면 되겠다는 생각입니다.
어느 분께는 도움이 되셨기를..
덧글
도움이 되었습니다
도움이 되셨다면 저의 보람입니다~ ^^
하지만 개발은 맥이나 윈도우에서 하더라도 대부분 실제 동작은 리눅스에서 하기에.
최대한 크로스 플랫폼으로 만들려고 노력했겠지만 차이가 분명히 존재하는 듯 합니다.
도움이 되셨기를.. ^^