가장 먼저 떠올리는 배치는 정적 배치다. 요청을 N개 모아서 한 덩어리로 만들고, 다 끝나면 다음 덩어리를 받는다.
동작 방식
구현이 단순하다. 큐에서 N개를 꺼내거나 타임아웃이 지나면 있는 것만으로 배치를 만든다. 그리고 배치 전체가 끝날 때까지 돈다.
짧은 답변과 긴 답변이 한 배치에 섞이면 문제가 드러난다.
낙오자 문제
배치 안의 요청 하나가 500토큰을 뽑고 나머지 일곱 개가 20토큰에서 끝났다고 하자. 정적 배치는 480스텝 동안 일곱 자리를 빈 채로 계산한다. 계산은 하지만 버리는 결과다.
답변 길이 분포가 넓을수록 손실이 커진다. 실제 대화 트래픽은 길이 분포가 아주 넓다.
타임아웃의 딜레마
배치를 채우려고 기다리는 시간도 문제다.
- 타임아웃을 짧게: 배치가 덜 차서 처리량을 못 낸다
- 타임아웃을 길게: 한가한 시간대에 첫 토큰 시간이 그만큼 늘어난다
트래픽이 일정하면 타협점을 찾을 수 있지만, 트래픽은 일정하지 않다. 정적 배치는 이 두 문제를 구조적으로 못 푼다. 요청을 배치에 묶어놓고 배치 단위로만 시작하고 끝내기 때문이다.