[TIL] 실시간 스트리밍 딜레이 문제 - NginX worker_processes과의 연관성 테스트

sooyoung choi·2024년 2월 7일
0

프로젝트 nginx config 파일에 최상단에 위치한 worker_processes

worker_processes가 뭔지?

  • Nginx가 요청을 처리하기 위해 생성할 수 있는 프로세스의 수를 지정하는 설정
  • Master 서버가 있으면 Worker process에게 작업을 할당해준다.
  • Master는 아무것도 하지 않고 Worker process들이 다 한다.
  • Worker process는 많을수록 요청에 대한 처리가 효율적이다.
  • worker_process는 독립적으로 실행되며, CPU 코어와 연관될 수 있어, 멀티코어 시스템에서 효율적으로 작동한다.

요청에 대한 처리부터 효율적으로 받아오면 딜레이는 단축될 것인가에 대한 실험을 팀원들이랑 해보았다.

  • 단순히 worker_processes 할당 값을 올려주는 방식대로 진행해보았다.
  • 값마다 두번씩 측정해줬고, 혹시 몰라서 운영체제 별로 실험을 진행해보았다(Mac, Windows)


Mac에서의 결과값 (CPU 사용량 / 딜레이 차이 순서로 기재)

Worker_process1번째 측정두번째 측정
auto13.32% / 14.013ms15.65% / 33.149ms
13.81% / 14.013ms2.83% / 13.371ms
25.95% / 15.802ms6.67% / 29.374ms
45.51% / 13.761ms6.57% / 31.296ms
611.24% / 12.542ms9.51% / 13.371ms
819.7% / 12.166ms11.24% / 12.988ms
1016.07% / 12.988ms19.64% / 31.867ms
1627.88% / 23.230ms27.15% / 12.037ms

Windows에서의 결과값 (CPU 사용량 / 딜레이 차이 순서로 기재)

Worker_process1번째 측정두번째 측정
auto20.94% / 19.711ms6.33% / 30.783ms
11.86% / 16.638ms2.24% / 15.296ms
22.44% / 12.099ms2.25% / 28.542ms
42.66% / 13.177ms3.06% / 33.035ms
62.85% / 13.051ms20.12% / 11.710ms
819.16% / 11.263ms20.34% / 12.166ms
108.29% / 12.477ms5.12% / 13.696ms
1638.75% / 12.925ms7.69% / 09.983ms


결과

Mac

  • worker_processes: 6 설정이 비교적 낮은 CPU 사용량(11.24%, 9.51%)과 딜레이(12.542ms, 13.371ms)를 제공하여, Mac 환경에서 가장 효율적인 균형을 보인다.

Windows

  • worker_processes: 6 두 번째 측정에서 매우 낮은 딜레이(11.710ms)와 높은 CPU 사용량(20.12%)을 보여주는데, 이는 특정 상황에서는 우수한 성능을 나타낼 수 있음
  • 그러나 균형성이 좋은건 worker_processes: 2


물론 유저마다 운영체제도 다르고 스펙도 다르기 때문에 정확한 수치라고는 보기 어렵다.
또한 worker_process가 딜레이에 영향을 주는지, 요청에 관한 처리가 효율적으로 진행될 때 딜레이도 같이 영향을 주는 지에 대한 결과는 정확히 나타낼 수 없고, 영상 자체에 처리부분을 효율적으로 처리하는 것이 좀 더 좋은 결과를 줬다는 것을 알게되었다.

나름 이것 저것 팀원들이랑 약간의 노가다성인 테스트였지만 흥미로웠고, 여러 상황을 다 테스트 할 수 없어 결론을 바로 짓기 어려운 상황이었기 때문에 결과가 도출되지 않은걸까 싶기도 하다.

0개의 댓글