본문 바로가기

성능과 튜닝6

Apache Tomcat 메모리 누수 재현 들어가며다양한 이유로 메모리 누수 테스트를 진행해 봐야 하는 경우가 종종 발생한다.가령 예를 들면 아래와 같은 경우이다.실제 JVM 옵션이 정상적으로 반영이 되었는지 실측 관점에서 확인다른 애플리케이션이 같이 동작하는 경우 영향도 파악모니터링 알람등 제대로 동작하는지 검증 위 경우 외에도 많은 경우가 있을것이다. 테스트 코드JSP 테스트 페이지 #1 - OOM이 발생할때 까지 무한정 메모리를 할당말그대로 OOM이 발생할때 까지 무한정 메모리를 할당한다.호출 방법 : http://localhost:8080/oom.jsp# oom.jsp memoryLeak = new ArrayList(); while (System.currentTimeMillis() > 0) { memoryLeak.add(.. 2026. 7. 7.
stress 도구 사용 stress 패키지 설치dnf install -y epel-releasednf install -y stress stress 명령어stress --help`stress' imposes certain types of compute stress on your systemUsage: stress [OPTION [ARG]] ... -?, --help show this help statement --version show version statement -v, --verbose be verbose -q, --quiet be quiet -n, --dry-run show what would have been done -t, --timeout N time.. 2024. 11. 24.
Locust 클래스 살펴보기 - User class User classUser class는 시스템의 사용자/시나리오를 나타낸다. User class 에 포함된 속성wait_time 속성wait_time 메서드는 각 task의 실행 지연을 쉽게 도와 준다.constant : 고정된 시간between : random time between a min and max valueconstant_throughput : 초당 최대 X회 작업이 실행되도록 보장constant_pacing : 작업이 X초마다 한 번씩 실행되도록 보장from locust import User, task, betweenclass MyUser(User): @task def my_task(self): print("executing my_task") wait_time .. 2024. 10. 14.
locustfile 작성 locustfile 샘플 살펴보기import timefrom locust import HttpUser, task, betweenclass QuickstartUser(HttpUser): wait_time = between(1, 5) @task def hello_world(self): self.client.get("/hello") self.client.get("/world") @task(3) def view_items(self): for item_id in range(10): self.client.get(f"/item?id={item_id}", name="/item") time.sleep(1) def.. 2024. 9. 23.