본문 바로가기
Devops

[부하테스트] 부하 테스트 서버 설정 시 주의점

by 개미가되고싶은사람 2025. 3. 20.

1. 부하 테스트 환경 독립성 유지

부하 테스트 툴은 테스트하고자 하는 시스템(백엔드, 데이터베이스 등)과 반드시 독립적으로 구성해야 합니다. 부하 테스트 툴 자체도 트래픽을 생성하며, 이 과정에서 CPU, 메모리 등 컴퓨팅 리소스를 소모하기 때문에, 테스트 환경과의 분리가 필요합니다. 또한, 독립적인 환경에서 테스트를 수행함으로써 실제 운영 환경에서의 성능을 보다 정확하게 평가할 수 있으며, 테스트 중 발생할 수 있는 리소스 경합 문제를 최소화할 수 있습니다. 이를 통해 부하 테스트의 신뢰성을 높이고, 시스템의 성능 병목 현상을 효과적으로 식별할 수 있습니다. 더불어, 테스트 환경이 독립적일 경우, 다양한 부하 시나리오를 설정하고 실험할 수 있는 유연성을 제공하여, 시스템의 안정성과 확장성을 평가하는 데 유리합니다. 예를 들어, 우리가 사용하는 컴퓨터에 게임을 여러 개 키면 렉이 유발되는 상황과 유사하게 부하 테스트 툴과 실제 운영 환경에 애플리케이션이 리소스를 소모하여 서버에 과부화가 올 수 있습니다.

++

성능 측정을 적절한 시간 간격해야 합니다(최소 5분마다 수행)

 

2. 부하 테스트 툴을 개인 컴퓨터에 설치하지 않기

Local환경에서 부하테스트를 할 시 종종 문제를 발생할 수 있습니다. 따라서 EC2 인스턴스를 생성해 Linux 환경에서 부하 테스트를 진행할 것을 권장합니다. 대표적으로 MacOS에서 k6로 부하 테스트를 진행할 경우 "read: connection reset by peer"와 같은 문제가 발생할 수 있습니다. 이는 virtual user(부하 테스트에 사용되는 가상의 사용자)를 늘리면 발생하는 문제로, MacOS가 108 소켓에 제한을 두어 생기는 현상입니다. 따라서 이러한 문제를 피하기 위해 AWS 인스턴스 환경에서 부하 테스트를 수행하는 것이 바람직합니다.

 

3. 실제 운영 환경의 비슷한 데이터 셋팅

데이터베이스의 성능은 데이터의 저장 방식과 저장된 데이터의 양에 따라 크게 달라지므로, 실제 환경과 유사하게 데이터를 구성한 후 부하 테스트를 수행해야 보다 정확한 결과를 얻을 수 있습니다.

 

 

참고자료

https://kinggodgeneral.tistory.com/72

 

K6는 맥에서 돌리지 마세요...... 제발(connection reset by peer)

MacOS에서 K6로 부하 테스트를 진행할 때,vuser를 늘리다 보면 높은 확률로 read: connection reset by peer 문제를 마주하게 됩니다.이는 MacOS에서 소켓에 제한을 걸어서 발생되는 문제이므로K6를 Docker Contain

kinggodgeneral.tistory.com

https://developer.apple.com/forums/thread/756756?answerId=790320022#790320022

 

Unix Domain Socket, Network Framew… | Apple Developer Forums

Yeah, Unix domain sockets are tricky. The ultimate limit is 253 bytes, which is SOCK_MAXADDRLEN minus the two byte header containing sun_family and sun_len. However, sockaddr_un is defined such that sun_path is 104. This artificially limits the length. Net

developer.apple.com