CPU와 작업 세트 간의 친화력을 사용하여 Node.js 계산을 가속화하고 오랫동안 차단합니다.

CPU와 작업 세트 간의 친화력을 사용하여 Node.js 계산을 가속화하고 오랫동안 차단합니다.

저는 Node.js를 백엔드로 사용하여 물리 기반 게임용 온라인 서버를 실행하고 있습니다. 현재 서버는 다음 틱이 실행되기 전까지 한 번에 10개의 게임/세계를 처리할 수 있습니다.

이런 점을 염두에 두고 빡빡한 일정을 사용했습니다.나노 타이머이렇게 하면 세계 단계가 서로 간섭하지 않지만 순서는 하나의 프로세서에서만 실행할 수 있음을 의미하므로 AWS 인스턴스의 CPU 사용률은 약 55%에 불과합니다.

나는 사용하기로 결정했다작업 세트내 인스턴스에서 두 개의 프로세서를 사용하는 것이 좋은 방법이겠지만, 때로는 다른 외부 프로세스가 실행 중이고 세상이 때때로 몇 초 동안 처리가 차단되는 경우가 있다고 생각합니다.

이런 일이 발생하지 않도록 하려면 어떻게 해야 합니까? 두 개의 프로세서(작업 세트 없이)를 사용하면 월드 세트는 잘 실행되지만 프로세서의 55%만 사용하므로 매우 비쌉니다.

답변1

먼저 서버에서 실행되는 프로세스의 우선순위를 확인하겠습니다.

ps -eo pid,ppid,ni,comm

그런 다음 Node.js 프로세스의 Nice 값을 가장 높은 값으로 변경하고 개선 사항이 있는지 확인합니다.

renice -n -12 -p (node.js의 PID)

관련 정보