서비스 성능 측정 중인데, ELB를 넣을 경우 성능차이가 굉장히 많이…

서비스 성능 측정 중인데, ELB를 넣을 경우 성능차이가 굉장히 많이 나는 군요.
wrk로 테스트 중인데, 동접 32로 ELB 없이 직접 연결 할 경우
초당 70,000의 요청을 처리 할 수 있습니다.
그런데 Internal ELB를 두고 테스트를 하면 8,100 정도로 거의 9배 만큼 줄어듭니다. ELB를 사용 할 경우 어느 정도의 성능 하락은 있을 거라고 예상했지만, 격차가 너무 크군요.

테스트 환경은 다음과 같습니다.
=========
타겟 서버 : c4.xlarge
* Ubuntu Linux 14.04
* 자작 HTTP Server

트래픽 발생기 : c4.xlarge
* Ubuntu Linux 14.04
* wrk & lua
* 데이터(Body)크기 32byte
* 동접을 1 ~ 32까지 늘려가면서 테스트
===========
웜업시간 이후에 스케일아웃 한다는 이야기를 들어서, 긴 시간 테스트 중입니다.
늘어나긴 하는 군요. 한 10분 돌렸더니.. 14,000으로 두 배 정도 늘어납니다.
어느 정도의 성능을 기대 할 수 있을지, 모르겠네요. .. 하루종일 돌려봐야 하나 -.-;

혹시 ELB의 기대 성능에 대한 정보 가지고 계신 분 잇나요.

7 thoughts on “서비스 성능 측정 중인데, ELB를 넣을 경우 성능차이가 굉장히 많이…

  1. ELB 밑에서 벤치를 돌리실때는 pre warmup신청을 하셔서 하는게 좋습니다 🙂 elb scale out도 나름의 policy로 해서 원하는 만큼의 성능이 항상 나오게 되는게 아니더라구요.

  2. ELB의 scale out oolicy에 세션은 없습니다. 즉 트래픽 및 CPU 부하가 없는 단순 세션만 증가하는 패턴의 테스트라면 scale out이 되지 않습니다.^^ 테스트 하실때 ELB리소스 모니터링 하시면서 scale out이 되는지 확인해 보시기 바랍니다.테스트 하실때 ELB 도메인 룩업 하시면 아이피가 늘어나면 scale out이 되고 있는겁니다. 참고적으로 ELB는 Scale up을 먼저하고 scale out을 합니다. 또한 ELB 한개노드 최대 세션은32000 입니다.즉 in/out 계산하면 16000이 최대 입니다. 만약 scale out이 되면 노드가 바뀌게 됩니다.즉 이때는 아이피 전체가 바뀌게 됩니다. 따라서 테스트 하면서 룩업해보시면 아이피가 늘어나다가 전체가 바뀌는 시점이 있는데 이때는 노드가 바뀐겁니다.

  3. 웜업을 요청하는 등의 방법이 있는 걸로 알고 있습니다. 실제 어느 정도까지 스케일링이 되는 건지가 궁금한겁니다. 이론대로 ELB가 인스턴스를 여러대 할당하고 제한이 없다면, 100K이건 그 이상이건 수용 할 수 있겠는데, 실제로 그런건지가 궁금한 거죠. 제한이 있다면 그 제한이 어느정도인지도 궁금하고요.

    이미 웹 서버하나가 초당 50K 정도의 요청을 처리하고 있는데, 웜업한 ELB가 최대 40K 정도를 처리할 수 있다 이러면… 인스턴스 타입 설계 부터 다시 해야 하니까요.

  4. 테스트하실 때 테스트 프로그램이 dns 캐싱을 하지 못하도록 신경을 쓰셔야 정확한 테스트가 됩니다. 예전에 본 벤치마크 글에서는 계속 무한히 스케일업이 되어 테스트를 중단했다는 얘기를 들은적이 있습니다.

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.