Foundry
메시징
심화

컨슈머 랙과 처리량 튜닝

밀리는 큐 진단법, 랙이 늘면 무엇을 먼저 보나

컨슈머 랙과 처리량 튜닝

랙이란

항목
파티션 최신 오프셋1,000,000
컨슈머 커밋 오프셋980,000
lag20,000건. 밀린 양이다
  • 절대값보다 추세가 중요하다. 증가 중이면 소비 속도가 생산 속도보다 느리다는 뜻
  • 건수 대신 시간으로 환산(몇 분치 밀렸나)하면 서비스 영향 판단이 쉽다

증상별 처방

증상원인처방
특정 파티션만 랙핫 키 편중파티션 키 재설계
전 파티션 랙 증가소비 처리 자체가 느림하류 IO 배치화, 파티션과 컨슈머 동시 증설
랙이 톱니 모양 반복리밸런싱 반복한 번에 가져오는 건수 축소, 폴 간격 조정
CPU는 한가한데 느림IO, 커밋 대기배치 커밋, 프리페치 조정, 병렬 워커

실무 포인트

  • 컨슈머 수의 상한은 파티션 수다. 인스턴스만 늘려도 처리량은 오르지 않는다
  • 한 건씩 DB에 쓰는 구조를 배치 삽입으로 바꾸면 수 배 개선되는 경우가 많다
  • 폴 루프 안에서 오래 걸리는 작업을 하면 리밸런스가 유발되고 중복 처리가 늘어난다
  • 경보는 랙 임계치와 증가율을 함께 걸어야 서서히 쌓이는 누적과 급증을 모두 잡는다
면접에서 이렇게 나옵니다

Q.컨슈머 랙이 계속 증가할 때 어떤 순서로 원인을 찾으시겠어요?

답변을 준비하고 있어요. 우선 위 본문에서 근거를 찾아보세요.

Q.컨슈머 인스턴스를 늘렸는데 랙이 줄지 않는 이유는?

답변을 준비하고 있어요. 우선 위 본문에서 근거를 찾아보세요.

Q.리밸런싱이 반복되는 원인과 대응 방법은?

답변을 준비하고 있어요. 우선 위 본문에서 근거를 찾아보세요.

Q.코드 변경 없이 처리량을 올릴 수 있는 방법이 있나요?

답변을 준비하고 있어요. 우선 위 본문에서 근거를 찾아보세요.

먼저 스스로 답해보고 아래 답변과 견줘보세요. 막히는 부분은 문제로 확인할 수 있어요.

읽었으면 문제로 확인해보세요

메시징 문제를 풀면 틀린 문제가 자동으로 노트에 쌓입니다. 가입 없이 5문제를 먼저 풀어볼 수도 있어요.