작성
·
166
0
1. 마스터프로세스는 코어 하나를 점유하지 않나요?
강의에서 제로초님 컴퓨터는 cpu가 6개(코어를 의미하신 거겠죠?)라고 하셨습니다. 그리고 cluster.js를 실행했을 때 process.pid가 7개가 출력됩니다. (마스터 프로세스 하나 워커 프로세스 6개) 이때 마스터 프로세스는 어느 코어에서 실행 되는건가요?
2. 클러스터와 child_process 차이가 뭔가요?
둘다 멀티 프로세스이지만 child_process는 메인 프로세스에서 다른 프로그램을 실행 시킬 수 있는 제어권을 주는 개념이고 클러스터는 효율을 위해 메인에서 워커에게 일을 분배해준다고 이해했습니다.
여기서 cluster.js의 else부분을 다른 파일로 만들고 부모 프로그램에서 child_process로 else부분 파일을 실행시킨다면, 부모 프로세스에서 listen하므로 포트를 공유하고 데이터를 넘겨주며 멀티프로세스를 사용할 수 있는데 이런 식으로 child_process를 이용해 클러스터를 구현한다면 클러스터와 어떤 차이가 있는건가요?
답변 2
0
0
1. 6개 중 하나에서 실행될겁니다. 어느 코어인지는 알 수 없습니다.
2. child_process로도 서버를 띄울 수 있지만 메인프로세스와 포트 공유가 되는지를 모르겠습니다. cluster는 포트 공유가 되므로 서버는 여러 개이더라도 하나의 포트를 통해서 접근할 수 있습니다.
공식문서에 차이와 특징이 나와있네요.