지연 피드백과 분산 라우팅
늦게 도착한 부하 정보는 여러 라우터의 선택을 한곳으로 모을 수 있습니다. DLB의 확률 갱신과 제어 간격, 운영 비교의 한계를 살펴봅니다.
관측이 늦는 환경에서는 어디로 요청을 보낼지와 함께, 라우팅 비율을 얼마나 빠르게 바꿀지도 정해야 합니다.
지연된 부하 관측
여러 라우터가 가장 한가한 목적지로 요청을 보내도 부하가 고르게 나뉜다는 보장은 없습니다. 각 라우터가 같은 과거 상태를 보고 결정하면, 새 요청이 같은 목적지에 쌓이기 때문입니다. 다음 관측에서 다른 목적지가 한가해 보이면 요청이 다시 그쪽으로 몰릴 수 있습니다.
구글의 분산 로드 밸런싱(Distributed Load Balancing, DLB)은 이 문제를 생성형 모델 추론에서 다룹니다. DLB 논문은 요청을 셀로 보내는 root와, 셀 안에서 추론 서버를 고르는 leaf를 구분합니다. 이 글은 2026-09 기준으로 공개된 2026-09-17의 arXiv v1을 근거로 합니다.
셀은 추론 서버를 묶은 라우팅 단위입니다. Leaf는 대기·실행 중인 요청 수인 Requests in Flight(RIF), 지연 모델, 오류율을 root에 전달합니다. Root는 이 정보와 네트워크 지연을 바탕으로 목적지 비용을 평가합니다.
Leaf가 보고한 부하는 root의 결정 시점에는 이미 과거 상태입니다. 그 사이 다른 root가 보낸 요청도 도착하므로, 관측된 최소비용과 요청 도착 시점의 최소비용은 달라질 수 있습니다. 위 구조는 논문 §3.1의 요청 경로와 관측 경로를 재구성한 것입니다.
요청 특성별 라우팅
DLB는 매 요청을 관측상 최저 비용 셀로 보내는 discrete routing을 설명합니다. 요청이 드물고 무거운 boulder 유형에서는 한 번의 배치 결정이 중요하므로 이 방식을 사용합니다. 짧은 요청이 높은 빈도로 들어오는 sand 유형에서는 여러 결정이 쌓이는 속도를 함께 다뤄야 합니다.
Flow routing은 목적지별 확률을 유지하고 그 확률을 점진적으로 갱신합니다. 각 요청은 현재 확률에 따라 배치되므로, 관측 결과가 바뀌어도 모든 요청을 곧바로 같은 셀에 옮기지 않습니다. 논문 §3.2는 이 차이를 지연된 관측에 따른 진동과 연결합니다.
| 비교 항목 | Discrete routing | Flow routing |
|---|---|---|
| 결정 대상 | 이번 요청의 최저 비용 셀 | 목적지별 라우팅 확률 |
| 새로운 관측의 반영 | 셀 선택에 바로 반영 | 확률을 점진적으로 수정 |
| 논문의 적용 유형 | 드물고 무거운 boulder | 짧고 빈번한 sand |
| 주요 검토점 | 한 요청을 배치하는 비용 | 여러 root의 동시 반응과 진동 |
두 방식의 구분은 요청 수만으로 끝나지 않습니다. 요청 하나가 차지하는 작업량과 부하 관측 주기를 함께 봐야, 다음 관측 전에 얼마나 많은 배치 결정이 누적되는지 알 수 있습니다.
확률 갱신과 제어 간격
Flow routing은 현재 확률에서 비용에 비례하는 값을 뺀 뒤, 허용된 확률 범위로 투영합니다. 투영은 목적지 확률의 합을 1로 맞추고 음수 확률을 제거하는 연산입니다. 데이터 상주 정책 등으로 허용하지 않는 셀의 확률도 0으로 제한합니다.
아래는 논문 식 (2)를 전사한 수식 표기이며 실행 코드는 아닙니다. 비용은 각 셀에서 지연되어 도착한 부하 관측으로 계산합니다.
x_i(t + delta_t) = Pi_Delta_i(x_i(t) - eta_i * delta_t * c_i(t))| 기호 | 의미 | 검토할 조건 |
|---|---|---|
| x_i | Root i의 목적지별 확률 벡터 | 허용한 셀에만 확률을 배정 |
| c_i | 목적지별 관측 비용 벡터 | 현재 부하와 관측 부하의 차이 |
| eta_i | 갱신 보폭 | 비용 변화에 반응하는 강도 |
| delta_t | Probe 갱신 간격 | 관측·수정 사이에 흐르는 시간 |
| Pi_Delta_i | 허용 확률 집합으로의 투영 | 비음수, 합 1, 허용 경로 유지 |
갱신식에는 보폭과 간격의 곱이 들어갑니다. 보폭만 비교하고 갱신 간격을 생략하면, 한 번의 수정이 확률을 얼마나 바꾸는지 해석하기 어렵습니다. 간격은 관측의 빈도도 바꾸므로 두 값을 함께 기록해야 합니다.
적응 속도와 안정성
보폭을 크게 잡으면 비용 변화에 더 빠르게 반응합니다. 동시에 오래된 관측을 바탕으로 확률을 더 크게 바꾸므로, 지연으로 생기는 오차도 커질 수 있습니다. 논문 §4는 요청의 유입과 처리를 연속적인 흐름으로 근사하는 유체모형에서 이를 분석합니다.
| 조정·분석 대상 | 기대하거나 확인할 것 | 함께 남겨야 할 조건 |
|---|---|---|
| 큰 갱신 보폭 | 부하 변화에 빠르게 적응 | 지연된 비용에 대한 과도한 반응 |
| 작은 갱신 보폭 | 한 번에 움직이는 확률을 제한 | 변화 이후 회복 속도 |
| 이론적 안정성 | 시간평균 편차의 경계 | 고정 지연, 처리율·용량·비용 함수 가정 |
| 운영 지연시간 | 실제 요청이 겪는 응답 지연 | 트래픽 구성과 라우팅 계층 |
이론 분석의 시간평균 편차는 응답 지연의 상위 분위수와 다른 대상입니다. 고정 지연과 처리율 등에 관한 가정 아래의 결과를 운영 전체의 지연 보장으로 바꿀 수는 없습니다. 특히 이 보장을 모든 discrete routing 정책에 그대로 적용하지 않아야 합니다.
운영 비교의 해석
논문 §5.2는 기존 라우터에서 DLB로 이전한 68개 엔드포인트를 분석합니다. 셀 내부 서버 선택을 맡는 Prequal은 동일하게 유지하고, 수요와 엔드포인트 효과를 보정해 셀 간 라우팅의 변화를 평가합니다. 다음 값은 해당 회귀 분석에서 추정한 지연 감소율입니다.
| 지표 | 기존 라우터 대비 감소 추정치 | 해석 범위 |
|---|---|---|
| 지연 p50 | 약 17% | 분석 대상 엔드포인트의 중앙 지연 |
| 평균 지연 | 약 13% | 같은 비교 조건의 평균 |
| 지연 p90 | 약 14% | 지연 분포의 90번째 백분위 |
| 지연 p95 | 약 13% | 지연 분포의 95번째 백분위 |
이는 실제 이전을 관찰한 분석이며 무작위 대조 실험은 아닙니다. 따라서 수치를 다른 모델·클러스터에서도 얻을 개선율로 제시할 수 없습니다. 이 글에서는 논문 코드를 실행하거나 같은 트래픽으로 결과를 재현하지 않았습니다.
도입 전 관측 기준
자체 서비스에 적용하려면 먼저 관측 경로와 요청 경로를 따로 기록해야 합니다. 목적지 부하를 측정한 시점과 라우터가 사용한 시점이 다르면, 알고리즘의 선택과 정보의 신선도를 분리해 확인할 수 있습니다. 아래 표는 논문의 구조를 바탕으로 정리한 운영 검토 항목입니다.
| 관측 항목 | 확인할 질문 |
|---|---|
| 부하 측정·수신 시각 | 라우터가 사용하는 관측은 얼마나 오래됐는지 확인합니다. |
| 목적지별 확률 변화 | 같은 관측 이후 여러 root가 함께 이동하는지 확인합니다. |
| 대기·실행 요청과 처리 지연 | 요청 개수가 비슷해도 작업량이 다른지 확인합니다. |
| 허용 목적지 집합 | 확률을 바꿔도 배치 제약을 지키는지 확인합니다. |
| 부하 변화 이후 회복 | 지연과 요청 분포가 함께 안정되는지 확인합니다. |
이 기록이 있어야 보폭 변경 이후의 차이를 해석할 수 있습니다. 목적지 확률이 부드러워졌다는 사실과 사용자의 응답 지연이 줄었다는 사실도 별도로 확인해야 합니다. 기본 알고리즘의 범위는 기존 로드 밸런싱 글에서 다룹니다.
정리
분산 라우팅은 지연된 관측을 여러 결정 주체가 함께 사용하는 문제를 포함합니다. DLB의 flow routing은 목적지 확률을 점진적으로 바꾸며, 보폭과 갱신 간격을 함께 다룹니다. 이론적 안정성과 운영 지연 개선은 서로 다른 조건과 지표로 검증해야 합니다. 적용할 때는 관측의 나이, 확률 변화, 실제 응답 지연을 연결해 판단해야 합니다.