개발
JMeter를 사용하여 서버 부하를 테스트 방법
피터JK
2025. 3. 19. 17:57
728x90
JMeter를 사용하여 서버 부하를 테스트하는 방법을 단계별로 설명하겠습니다.
1. JMeter 설치 및 실행
먼저, JMeter가 설치되어 있어야 합니다.
JMeter는 공식 웹사이트에서 다운로드할 수 있습니다:
🔗 Apache JMeter 공식 사이트
- 다운로드 후 압축을 풀고, bin/jmeter.bat (Windows) 또는 bin/jmeter (Linux/Mac) 실행
2. JMeter에서 부하 테스트 시나리오 작성
부하 테스트를 위해 테스트 플랜(Test Plan)을 설정해야 합니다.
(1) 테스트 플랜 생성
- JMeter 실행 후 Test Plan을 선택
- Thread Group 추가:
- Test Plan을 우클릭 → Add → Threads (Users) → Thread Group
- 설정값:
- Number of Threads (users): 동시에 접속할 가상의 사용자 수
- Ramp-Up Period (seconds): 사용자가 몇 초에 걸쳐 증가할지 설정 (ex: 10초 동안 100명 증가)
- Loop Count: 반복 횟수 (0 또는 Infinite로 설정하면 계속 실행됨)


(2) HTTP 요청 추가
- Thread Group을 우클릭 → Add → Sampler → HTTP Request 추가
- 설정값:
- Server Name or IP: 부하 테스트할 서버 도메인 또는 IP
- Port Number: 해당 서버의 포트 (예: 80, 8080)
- Path: 테스트할 엔드포인트 (예: /api/test)
- Method: GET, POST 등 선택


(3) 리스너 추가 (결과 확인)
- Thread Group을 우클릭 → Add → Listener 추가
- 추천 리스너:
- View Results Tree (요청 및 응답 확인)
- Summary Report (통계 요약)
- Aggregate Report (TPS, 응답 시간 등)
- Graph Results (그래프 형태로 부하 상황 확인)



3. JMeter 부하 테스트 실행
- 상단 ▶ (Start) 버튼 클릭
- View Results Tree 또는 Summary Report에서 부하 테스트 진행 상황 확인
4. 테스트 결과 분석 (서버 부하 확인)
테스트가 완료되면 JMeter의 리스너에서 서버 부하 상태를 분석할 수 있습니다.
(1) 서버의 성능 지표 확인
응답 시간(Response Time)
- 평균 응답 시간 (Avg): 요청이 완료되는 데 걸리는 평균 시간 (ms)
- 90% / 95% / 99% Percentile: 응답 속도 지표
초당 처리량 (Throughput)
- 초당 처리할 수 있는 요청 수 (req/sec)
- Throughput이 낮다면 서버가 부하를 견디지 못하고 있다는 의미
에러율 (Error Rate)
- 응답 코드 (200, 500, 502 등)를 보고 오류 발생 여부 확인
- HTTP 500번대 오류가 많으면 서버 과부하 가능성 있음




5. 서버 리소스 모니터링 (부하 확인)
부하 테스트 중 서버의 CPU, 메모리 사용률을 모니터링해야 합니다.
(1) Linux 서버 모니터링
top # 실시간 CPU 및 메모리 확인
htop # CPU 코어별 부하 확인
vmstat 1 # 1초 단위로 리소스 상태 확인
iostat -x 1 # 디스크 I/O 상태 확인
(2) Windows 서버 모니터링
- Ctrl + Shift + Esc → 작업 관리자 → 성능 탭에서 CPU, 메모리 확인
- Perfmon (Windows + R → perfmon) 실행하여 서버 부하 분석
6. 부하 테스트 최적화
(1) 부하 테스트 설정 조정
- Ramp-Up 설정 최적화: 갑자기 많은 요청을 보내면 부하 테스트가 비현실적일 수 있음
- 병렬 실행 최적화: 여러 Thread Group을 사용하여 실제 사용자 시나리오 반영
(2) 서버 성능 튜닝
- DB Connection Pool 최적화
- Cache 사용 (EhCache, Redis 등)
- Thread Pool 설정 조정
- 로드 밸런서 적용 (Nginx, HAProxy 등)
7. 결과보고서 생성
(1) Tools > Generate HTML report

(2) 파일 선택
- Summary Report에서 저장한 csv 파일선택
- jmeter 설치 폴더 bin 폴더에서 기본 프로퍼티 파일 jmeter.properties 파일 선택
- HTML report 생성할 폴더 선택(해당 폴더는 빈 폴더여야 한다.)

8. 결과보고서 생성파일 확인

결론
- JMeter에서 Thread Group을 활용해 여러 사용자를 시뮬레이션
- HTTP 요청을 설정하여 부하 테스트 진행
- Summary Report, Aggregate Report 등에서 성능 분석
- 실제 서버의 CPU, 메모리 사용률을 모니터링하여 부하 영향 확인
- 필요 시 서버 성능 튜닝 및 부하 테스트 최적화
부하 테스트 후 Throughput, 응답 시간, 에러율 등을 분석하여 서버가 예상된 트래픽을 견딜 수 있는지 확인
728x90