Sendai gourmet 안내 — 인덱싱 지연 원인 갈라내기
회선을 두 배로 올렸는데 체감은 그대로였다. 숫자만 두 배였다.
여기서 갈림길이 생긴다. 첫 번째 분기는 이것이다. 느린 것이 전송량 문제인가, 요청 횟수 문제인가.
전송량 문제라면 대역폭을 넓히는 선택이 맞다. 큰 파일이 오래 걸리는 경우가 여기에 해당한다. 이 경로에서는 회선을 키운 만큼 시간이 줄어든다. 투자와 결과가 거의 비례하기 때문에 판단도 쉽다.
요청 횟수 문제라면 대역폭은 거의 영향을 주지 않는다. 작은 요청이 수천 번 오가는 구조에서는 한 번 왕복하는 지연이 누적된다. 이 경로에서는 회선을 열 배로 키워도 왕복 횟수가 그대로면 총 시간은 거의 그대로다. 내 경우가 이쪽이었다.
두 번째 분기는 확인 순서다. 먼저 볼 지점은 응답이 시작되기까지 걸린 시간, 그 다음이 전체 완료 시간이다. 두 값의 차이가 작으면 왕복 문제이고 차이가 크면 전송량 문제다. 이 순서를 뒤집으면 엉뚱한 곳에 돈을 쓰게 된다.
세 번째 분기가 남는다. 왕복 문제로 판명됐다면 줄일 수 있는 요청인지 아닌지를 나눈다. 같은 값을 반복해서 물어보는 요청은 한 번만 물어보고 보관하면 된다. 반면 매번 값이 달라지는 요청은 줄일 수 없고, 이때는 여러 요청을 한 번에 묶어 보내는 쪽으로 방향이 바뀐다. 줄이는 것과 묶는 것은 다른 작업이라 준비해야 할 것도 다르다.
확인해볼 체크포인트도 순서대로 둘 수 있다. 회선 사용량이 실제로 한계에 닿아 있는지, 요청 수가 시간대별로 어떻게 변하는지, 그중 반복되는 요청의 비중이 얼마인지. 세 번째까지 보고 나서야 어느 분기에 서 있는지가 확정된다.
단기 효과와 장기 효과를 나눠서 보면 결론이 갈린다. 단기로는 회선 증설이 눈에 보이는 조치다. 계약하면 그날 숫자가 바뀐다. 장기로는 요청 구조를 줄인 쪽이 남는다. 구조를 줄이면 다음 증설 시점이 뒤로 밀리고, 밀린 만큼이 그대로 절감으로 돌아온다.