Locust 성능테스트 (feat. K8S)

IT/EKS 2023. 5. 24. 16:33
반응형

기본적으로 부하테스트의 기본 카테고리는 성능테스트로 진입한댜

 

성능테스트 하위 단위로는 다음과 같댜

> LoadTest : 물량. 점진적인 것이고, 스케일링 테스트에 주로 사용

>StressTest : 스파이크 테스트. 일시적으로 한순간에 대량의 트래픽을 순간 쏟아넣음.

>EnduranceTest : 고가용성 테스트. 이것저것 중간에 한두대 빼고 죽이고 다운시키고 드르드르등등등

 

로커스트를 주력으로 사용하는데, 옵션 찾기가 힘들어서 헤매다가 다음과 같은 옵션을 찾았댜

 

- 유저 하나가, 1초에 몇 RPS까지 줄것인갸? (로커스트 단어로, task 데코레이터를 1초에 몇번 실행할 것인가)

> constant_throughput

class MyUser(User):
    wait_time = constant_throughput(0.1)
    @task
    def my_task(self):
        time.sleep(random.random())

.. 1초에 0.1번 태스크를 수행. 즉, 10초에 1번 수행

- 유저 하나가, 몇 초당 1 RPS를 줄 것인갸?

> constant_pacing

class MyUser(User):
    wait_time = constant_pacing(10)
    @task
    def my_task(self):
        time.sleep(random.random())

.. 10초에 한번 수행

 

자세한건 로커스트 스크립트 API 공식문서 참조하셈.

다음에는 성능테스트 관련 정리 글좀 올리겠음

https://docs.locust.io/en/stable/api.html

 

API — Locust 2.15.1 documentation

Response class This class actually resides in the python-requests library, since that’s what Locust is using to make HTTP requests, but it’s included in the API docs for locust since it’s so central when writing locust load tests. You can also look a

docs.locust.io

 

 

반응형

'IT > EKS' 카테고리의 다른 글

쿠버네티스 nginx 인그레스 http 바디 크기  (0) 2023.06.07
AWS 오픈서치 관련 내역 정리  (0) 2023.05.31
로커스트 후기  (0) 2022.12.27
아르고CD AD연동 과정  (0) 2022.11.24
EKS /var/log/containers 로그포맷  (0) 2022.11.08

설정

트랙백

댓글

로커스트 후기

IT/EKS 2022. 12. 27. 12:31
반응형

jmeter를 써본적은 없는데, 파이썬만 요즘 할줄 알아서 그냥 쿠버찡에다가 로커스트 올려봤다 

 

딜리버리히어로 독일 본사측에서 헬름차트 깔끔하게 만들어줬으니 쿠붕이들 가서 설치하셈 

 

GitHub - deliveryhero/helm-charts: Helm Charts ⛵ @ Delivery Hero ⭐

Helm Charts ⛵ @ Delivery Hero ⭐. Contribute to deliveryhero/helm-charts development by creating an account on GitHub.

github.com

대충 마스터랑 워커 조절 쉽게 가능할거고, 이거 파이썬 라이브러리를 직접 안에 설치하는게 아니라 value에다가 추가 플러그인 기입하는 형태로 설치하는거니 조심하셈들

 

파이썬 코드 개발은 직접 공홈 가서 보시고 

https://docs.locust.io/en/stable/writing-a-locustfile.html 

 

Writing a locustfile — Locust 2.14.0 documentation

HttpUser is the most commonly used User. It adds a client attribute which is used to make HTTP requests. client attribute / HttpSession client is an instance of HttpSession. HttpSession is a subclass/wrapper for requests.Session, so its features are well d

docs.locust.io

 

우선 처음 받은 태스크가, 배치 형태로 API를 호출하는걸 받았다

이거 신기한게 컨트롤할 수 있는 기능이 많지는 않고, 직접 거의 파이썬 코드 로우레벨로 건드려야함

 

특히 사이클은 단순하게 시스템 time.sleep 써서 하면 됨. 

대충 사이클 이렇게 나오고, 12초 이상으로 슬립 시키면 rps 안나온다 조심해라.

그리고 이거 부하테스트는 사실 http 평문통신 전용이고, DB부하테스트도 되긴 하는데 밑에와 같이 응답 차트는 안나온다.

 

 

대충 써본 결론은.

난 jmeter 써본 적 없고, 로커스트만 부하테스트 써봤다.

들리는 얘기로는 jmeter가 아무래도 제공해주는 기능이 압도적으로 많은 것 같음.

자바 아직도 주력 언어로 쓰고 컨테이너 충이면 jmeter 설치해서도 써보셈 ㅇㅇ 

반응형

'IT > EKS' 카테고리의 다른 글

AWS 오픈서치 관련 내역 정리  (0) 2023.05.31
Locust 성능테스트 (feat. K8S)  (0) 2023.05.24
아르고CD AD연동 과정  (0) 2022.11.24
EKS /var/log/containers 로그포맷  (0) 2022.11.08
EC2 Fault에 따른 노드 축출  (0) 2022.09.02

설정

트랙백

댓글