
데브옵스
k6로 n8n 부하테스트 - worker를 8배 늘려도 처리량이 그대로인 이유
두줄요약
n8n Queue Mode에서 worker만 늘려도 처리량이 오르지 않는 이유를 k6 부하테스트로 검증했습니다. 실제 병목은 worker가 아니라 task runner 한도였고, 두 값을 함께 조정해야 했습니다.
문제 상황
- n8n Queue Mode에서 worker를 늘려도 처리량이 오르지 않고 응답 지연과 실패가 발생하는 현상
- 슬롯 점유율은 100%인데 CPU와 일반 자원 지표는 낮아, 대시보드만으로 병목을 식별하기 어려운 상황
원인 분석
- worker가 job을 가져오는 것과 실제 Code 노드를 실행하는 것은 별개이며, 실행은 task runner가 담당
- 처리량 상한은 worker 동시 실행 수와 러너 한도 중 더 작은 값에 의해 결정
- 큐 지표는 worker가 붙잡은 job 수만 보여주고, 러너 내부 실행 수는 드러나지 않음
해결 방법
- k6와 Grafana/Prometheus로 부하와 지표를 함께 관측해 병목 위치를 분리
- 러너 한도만 변경한 A/B 측정으로 러너가 실제 병목임을 검증
- 운영에서는 worker 동시 실행 수와 러너 한도를 함께 조정하고, 메모리 상한은 러너에 설정
