실제 서버에 부하 테스트하기

0

이제 실제 서버에서 테스트를 돌려보자. 저번에는 로컬에서 실행하였다.

테스트를 돌려보기전에 처음이라 서버 비용이 걱정된다 ㅠㅅㅠ.


컨테이너 하나 + 초당 100

"phases": [
  {
    "duration": 60,
    "arrivalRate": 10
  }
],

먼저 컨테이너 하나로 초당 100개씩 60초 동안 요청을 보내보자.


해당 결과이다. 생각보다 빠르게 나온것같다.

p95p99 의 값이 둘다 0.2초 내외로 초당 100개의 요청은 아직까지는 거뜬 없는 것 같다.


컨테이너 하나 + 초당 200

"phases": [
  {
    "duration": 60,
    "arrivalRate": 20
  }
],

컨테이너 하나로 초당 200개씩 60초 동안 요청을 보내 보자.


p95p99 가 1.5초 정도로 아직까진 버틸만 하지만 그래도 성능이 매우 느려진 것을 확인할 수 있다.


Container 여러개

Nginx + Docker로 Load Balancing하기

이제 컨테이너를 여러개 띄워서 nginxLoad Balancing 을 적용하여 테스트를 시행해보자.


5개의 컨테이너를 띄워서 요청을 보냈는데. 1개의 컨테이너를 가동했을 때보다 더 느려진 것을 확인할 수 있다. 테스트 변수를 잘못 작성한줄 알고 다시 해봤는데 결과는 비슷했다. ㅠ


왜 Container 개수가 늘어났는데 요청은 느려진 걸까?

top 명령어로 cpu사용량을 확인해보니 각각의 컨테이너가 cpu를 30%씩 잡아먹고 있었다. cpu를 서로 30%씩 차지하려고 하니 Context Switching 이 일어나서 오히려 더 늦어진 것이라고 생각이 든다. 이건 나의 서버가 2코어 4GB이기 때문에 서버 스펙의 문제라고 생각이 들었다.

이 테스트로 로드밸런싱을 적용하여 컨테이너 개수를 늘린다고 무조건 속도가 빨라지는 것은 아니라는 것을 깨달았다. 적당한 컨테이너 개수를 찾아보자.


Container 개수 조절하기

컨테이너 3개로 실험하였다. 컨테이너 5개로 테스트를 한 것 보단 조금 시간이 줄었지만 여전히 컨테이너를 한개 사용하는 것보다 오래 걸린 것을 확인할 수 있다.

서버 비용이 대학생인 나에게 아직 비싸 서버의 스펙을 늘릴 수 없으니, 컨테이너 1~2개로 로드밸런싱을 하는 것이 적당하다고 생각이 들었다.

Load Balancing으로 컨테이너 개수를 늘린다고, 무조건 응답이 빨라지는 건 아니구나.

profile
https://www.youtube.com/watch?v=__9qLP846JE

0개의 댓글

관련 채용 정보