Skip to main content
QUICK REVIEW

[논문 리뷰] Load Balancer Tuning: Comparative Analysis of HAProxy Load Balancing Methods

Connor Rawls, Mohsen Amini Salehi|arXiv (Cornell University)|2022. 12. 29.
Cloud Computing and Resource Management인용 수 4
한 줄 요약

이 논문은 다양한 워크로드와 백엔드 구성에서 HAProxy의 로드 밸런싱 알고리즘을 평가하며, 스레드 수 조정과 알고리즘 선택이 응답 시간과 자원 효율성에 상당한 영향을 미친다는 것을 입증한다. 동일한 환경에서는 랜덤, leastconn, roundrobin 이 최적의 성능을 보이며, 이질적인 환경에서는 ALB 기반 방법이 NLB 보다 뛰어나다. 이는 클라우드 비용과 성능 최적화를 위한 실질적인 조정 가이드라인을 제공한다.

ABSTRACT

Load balancing is prevalent in practical application (e.g., web) deployments seen today. One such load balancer, HAProxy, remains relevant as an open-source, easy-to-use system. In the context of web systems, the load balancer tier possesses significant influence over system performance and the incurred cost, which is decisive for cloud-based deployments. Therefore, it is imperative to properly tune the load balancer configuration and get the most performance out of the existing resources. In this technical report, we first introduce the HAProxy architecture and its load balancing methods. Then, we discuss fine-tuning parameters within this load balancer and examine their performances in face of various workload intensities. Our evaluation encompasses various types of web requests and homogeneous and heterogeneous back-ends. Lastly, based on the findings of this study, we present a set of best practices to optimally configure HAProxy.

연구 동기 및 목표

  • 다양한 워크로드 강도에서 다양한 로드 밸런싱 알고리즘을 적용한 HAProxy의 성능 평가.
  • 특히 스레드 수와 같은 구성 매개변수의 응답 시간과 시스템 효율성에 미치는 영향 조사.
  • 동일한 및 이질적인 백엔드 서버 환경에서 네트워크 계층(NLB)과 애플리케이션 계층(ALB) 로드 밸런싱 방법의 효과성 비교.
  • 클라우드 비용을 최소화하고 성능을 극대화하기 위해 데이터 기반의 최적 설정 가이드라인 제공.

제안 방법

  • 동일한 및 이질적인 백엔드 서버 구성에서 실제 웹 워크로드를 기반으로 HAProxy의 벤치마킹 수행.
  • 동적 로드 밸런싱 결정을 위한 libvirt를 통한 커스텀 CPU 활용도 모니터링 구현.
  • 실시간 CPU 활용도 임계값을 기반으로 서버를 필터링하는 커스텀 랜덤 알고리즘을 HAProxy 소스 코드에 통합.
  • Makefile 구성과 커스텀 컴파일 플래그를 사용해 추가 라이브러리(예: libvirt)를 포함한 수정된 HAProxy 컴파일.
  • 여러 로드 밸런싱 알고리즘과 스레드 구성에서 응답 시간과 시스템 스루풋 측정.
  • 요청 부하 증가에 따른 성능 트렌드 분석을 통해 알고리즘 및 구성 간의 상호 교환 관계 규명.

실험 결과

연구 질문

  • RQ1HAProxy의 처리 스레드 수가 고립 및 공유 호스트 환경에서 응답 시간에 미치는 영향은 어떻게 되는가?
  • RQ2동일한 백엔드 서버 환경에서 랜덤, leastconn, roundrobin 등의 로드 밸런싱 알고리즘이 응답 시간을 가장 낮추는가?
  • RQ3백엔드 서버가 이질적인 용량을 가진 환경에서 ALB 기반 알고리즘과 NLB 기반 알고리즘의 성능은 어떻게 비교되는가?
  • RQ4서버의 이질성이 로드 밸런싱 성능에 미치는 영향는 무엇이며, 어떤 알고리즘이 이를 가장 잘 활용하는가?
  • RQ5실시간 서버 메트릭(예: CPU 활용도)을 고려한 커스텀 튜닝 알고리즘이 로드 밸런싱 효율성을 향상시킬 수 있는가?

주요 결과

  • HAProxy의 기본 스레드 수를 사용할 경우 고립 환경에서는 가장 낮은 응답 시간을 기록하지만, 다른 프로세스와 공유하는 환경에서는 스레드 수를 약간 줄이는 것이 성능 향상에 기여한다.
  • 동일한 백엔드 환경에서는 랜덤, leastconn, roundrobin, static-rr 알고리즘이 가장 낮고 일관된 응답 시간을 기록하며 최소한의 변동성을 보인다.
  • 이질적인 서버 환경에서는 애플리케이션 계층 정보와 서버 상태를 고려한 ALB 기반 알고리즘이 NLB 대비 뛰어난 성능을 보인다.
  • 이질적인 백엔드 환경에서는 소스 또는 URI 기반 해싱과 같은 알고리즘이 성능을 유지하는 데 필수적이며, 일반적인 알고리즘은 균형 잡히지 않은 워크로드를 초래할 수 있다.
  • 실시간 CPU 활용도 모니터링을 통한 HAProxy 커스터마이제이션은 더 스마트한 요청 라우팅을 가능하게 하여 고활용도 서버의 오버로드 위험을 줄인다.
  • 연구는 알고리즘의 복잡성과 성능 향상 간의 명확한 트레이드오프를 규명하였으며, 실제로는 단순한 알고리즘이 복잡한 알고리즘보다 더 뛰어난 성능을 내는 경우가 많다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.