본문 바로가기

Research/Testing8

Test_AB(Apache Benchmark)로 간단히 테스트하기 들어가기 어플리케이션의 테스트를 하는 경우, 로컬 호스트에서 ab 테스트 부하 테스트 서버에서의 ab 테스트 부하 테스트 서버에서의 Locust 테스트 와 같이 단계별로 테스트하는 것이 중요하다고 한다. (p.334, 제이펍 출판) 가볍게 ab 테스트를 해보자. 실험 EC2 t2.2xlarge(CPUv8 32G Mem)에서 EC2 t2.micro 프리티어(CPUv1 1G Mem)로 간단한 ab 스트레스 테스트를 진행해보았다. ab -c 100 -n 100000 url 100개의 동시 접속이 총 100,000번을 접속하도록 명령 -c : 동시 접속의 수 -n : 총 요청 수 Benchmarking 43.201.6.20 (be patient) Completed 10000 requests Completed 2.. 2023. 2. 23.
성능 테스트란 무엇일까 성능 테스트란 서버(API)의 성능을 측정하는 것 예) 앱에 점진적인 부하를 가하면서 더 이상 처리량이 증가하지 않을 때, 그 수치를 측정하고 해석 성능 테스트는 하는 이유 어플리케이션이 최대 몇 명의 유저까지 수용할 수 있는지 측정하기 위해 -> 최초 목표 성능에 부합하는지 파악 가능 어플리케이션의 병목 발생 지점 파악하기 위해 -> 서비스 중단되는 가능성을 줄임 두 설계 방식 중 어떤 쪽이 더 나은지 비교하기 위해 측정 기준 Throughput(공간) 시간 당 처리량 세부 항목으로 TPS(Transaction Per Second), RPS(Request Per Second) 등이 있음. 예) 1초 당 처리 단위작업 수 또는 HTTP 요청 수 Latency(시간) 클라이언트가 Request 후 Res.. 2023. 2. 23.
Artillery로 성능 측정하기 배경 스트레스 테스트 도구 왜 사용하나? API 서버, 웹 어플리케이션 서버를 만든 뒤 성능 테스트를 하기 위해 한 마디로, 서버가 얼마만큼의 요청을 견디는가? 이점 병목 지점을 찾을 수 있다 사용자 증가에 따라 언제즈음 서버를 늘릴 수 있는지에 대한 트래픽 기준을 얻을 수 있다 동시 접속사, 일일 사용자의 한계치를 예측할 수 있다 OOM(out of memory) 문제 방지. 코드에 문법적, 논리적 문제가 없어도 하드웨어 제약 때문에 서비스가 중단되는 문제를 사전에 예방하는데 도움이 된다 도구 종류 ab Artillery nGrinder Gatling Tsung JMeter nodejs에서 가볍게 쓰려면 Artillery, 정교하게 측정하려면 nGrinder, JMeter 등을 사용 Artillery란.. 2023. 2. 22.
DB 성능 측정 실험에 대한 논의 대용량 데이터를 잘 제어하기 위해선 어떻게 제어할 지 잘 알아야 한다. 어떻게 제어할지 잘 알려면 어떤 방법이 더 나은 것인지 비교할 수 있어야 한다. 비교하기 위해선 수치를 기반으로 측정해야 한다. 우리가 개발 과정에서 성능을 측정하고자 하는 이유가 바로 이 이유다. 어제 내가 정리한 내용을 바탕으로 팀원들에게 '우리는 이런 방향으로 측정하는 것이 좋겠습니다'라고 어필을 했고, 팀원분들의 반응이 좋았다. 하지만 중요한 피드백 하나를 받았는데, 바로 인프라 관련 측정 요소가 없다는 점이였다. 한 튜터분께서는 쿼리 성능을 튜닝하는 것보다 인프라의 구조를 바꾸는 것이 더 드라마틱한 변화가 생길 수도 있다는 의견을 주셨다고 한다. 현업에서 데브옵스 관련 있는 포지션에 있지 않는 이상 인프라를 다룰 경우가 과연.. 2023. 2. 15.