Tokio 애플리케이션을 빠르게 만드는 설계 원칙
Key Point
Tokio 런타임에서 성능을 발휘하려면 저지연성과 처리량의 트레이드오프를 상황에 맞게 조율해야 한다는 점을 명확히 하므로, 프로덕션 환경에서 직면하는 성능 저하 문제를 원인부터 해결할 수 있다.
핵심 요약
- Tokio에서 성능 문제를 진단할 때는 실제 지표를 기준으로 역으로 추적해야 하며, 긴 폴(poll)이 항상 문제는 아니다.
- 저지연성이 필요할 때는 요청 간 공정성을 위해 자주 양보(yield)하고, 처리량이 중요할 때는 여러 작업을 함께 배치해서 오버헤드를 분산한다.
- 파이프라인된 요청 예제에서 4개 프레임마다 yield하면 지연 시간을 약 10배 줄일 수 있다.
- 글로벌 리소스, 뮤텍스 경합, 병렬성 제어에 주의해야 하며, tokio::fs 같은 블로킹 작업은 작은 단위로 여러 번 호출하기보다 배치로 처리해야 한다.