
이번 포스팅에서는 wrk를 사용한 부하 테스트를 통해 Docker 컨테이너의 CPU 할당이 데이터베이스 성능에 미치는 영향을 분석합니다. 테스트 결과를 바탕으로 CPU 할당을 단계별로 조정하며, 이에 따른 전체 서비스 성능의 변화를 관찰하고 최적의 설정을 찾아가는 과정을 소개합니다.
Mac M2 Max, Docker desktop 환경에서 진행하였음
🍋 코드 링크
🔗 연관 포스트
db:
image: mysql
...
deploy:
resources:
limits:
cpus: # variable value
사용된 명령어는 다음과 같습니다.
> wrk -t1 -c200 -d120s -R 10000 http://127.0.0.1:8080/api/v1/orders/v5
CPU limits 값을 0.1 ~ 1로 조정하며 테스트 한 결과 다음과 같은 결과값을 얻었습니다.
| core | success | timeout | RPS |
|---|---|---|---|
| 0.1 | 2051 | 9768 | 17 |
| 0.2 | 3227 | 8650 | 26 |
| 0.3 | 4951 | 6996 | 41 |
| 0.5 | 12191 | 1455 | 101 |
| 1.0 | 30054 | 92 | 250.41 |


본 테스트는 데이터베이스 컨테이너의 CPU 할당에 초점을 맞추어 진행되었습니다.
향후 성능 최적화 및 테스트 시에는 다음 요소들을 추가로 고려할 수 있습니다.
1. 데이터베이스 연결 풀 사용 패턴 분석
2. 애플리케이션 로직 처리 시간 측정(데이터베이스 응답 대기 시간 포함)
3. 전체 시스템의 리소스 사용량 (CPU, 메모리, I/O 등) 모니터링
실제 운영 환경과 유사한 분산 환경에서의 테스트로 더 정확한 성능 특성을 파악할 수 있을 것으로 기대합니다.
이런 실험 과정을 통해 데이터베이스 컨테이너의 CPU 할당이 전체 시스템 성능에 미치는 영향을 확인했으며, 추가적인 성능 요소 분석의 필요성도 확인했습니다.