2016-11-26 1 views
-1

다음 절차를 사용하여 nodejs에서 실행되는 전용 서버에서 CPU 집중 작업을 수행하고 있습니다.Nodejs, 전용 서버, CPU 집중 작업

(주 - - CPU 집약적 인 작업의 완료의 시간만큼 그냥 완료됩니다 중요하지 않다)

  1. 는 nodejs 작성이 올바른 접근 방식 (전체 단계 및 방법) 인 경우 궁금
  2. WS는 localhost http 요청을 통해 CPS에 CPS로 보냅니다.
  3. CPS가 차단되고 각 작업이 순차적으로 수행됩니다. WS는 차단 된 CPS에 직접적으로 영향을받지 않습니다 (이 경우를 가정합니다!)

질문 1. WS에서 보낸 요청으로 인해 CPS에 계속 커다란 대기열이 있으면 어떻게됩니까?
질문 2. 이것은 CPU 집약적 인 작업을 수행하는 나쁜 방법입니까? 더 나은 해결책은 무엇입니까?

답변

0

응답 1. CPS가 대기열에 넣기 요청을 계속 수행하는 경우 (매우 큰 요청 대기열에 있음) 응용 프로그램의 heap size이 OS 제한을 초과합니다. -> CPS가 모든 대기열에 포함 된 요청을 잃어 버리게됩니다. 이 시나리오를 CPS에 대한 DDoS 공격과 같이 생각하십시오!

응답 2. 대기열이 커질 것으로 예상되는 경우 Redis Simple Messaging Queue (rsmq)과 같은 작업 대기열 (예 : kue)/메시지 대기열을 사용하는 것이 좋습니다.

내 부하가 그렇게 크지 않기 때문에이 시점에서 간단한 HTTP를 사용했습니다. 나중에 (서버 부하가 증가 할 때)이 답변을 업데이트 할 수 있습니다.

(일부 소스는 Stackoverflow의 this question에서 제공)