• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

프로세스와 cpu관련 질문드립니다.

22.02.04 13:33 작성 조회수 108

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

cloer님의 프로필

cloer

질문자

2022.02.05

cluster를 child_process로 구현한거였네요 감사합니다.

0

1. 6개 중 하나에서 실행될겁니다. 어느 코어인지는 알 수 없습니다.

2. child_process로도 서버를 띄울 수 있지만 메인프로세스와 포트 공유가 되는지를 모르겠습니다. cluster는 포트 공유가 되므로 서버는 여러 개이더라도 하나의 포트를 통해서 접근할 수 있습니다.

공식문서에 차이와 특징이 나와있네요.

https://nodejs.org/api/cluster.html#how-it-works