성능테스트의 중요성
그 동안 몇 번의 프로젝트를 진행했지만 기능 구현에 중점을 두었을 뿐 프로젝트의 성능을 위한 고민을 한 적이 없었다.
따라서 이번 프로젝트에서는 성능에 대해 좀 더 고민한 흔적을 남겨보려고 한다.
성능테스트는 왜 필요한가?
1. 사용자의 만족도 측면
웹 사이트 혹은 애플리케이션의 성능은 사용자의 만족도와 직결되는 요소로서 서비스 제공 시 많은 주의가 요구되는 부분이다.
시스템의 응답 시간, 처리량, 안정성 등을 모니터링하여 사전에 문제를 발견하거나 부족한 부분을 개선해야 사용자에게 최적의 사용 경험을 제공할 수 있다.
2. 기업의 비용 측면
성능 테스트를 통해 사용자의 만족도 뿐만 아니라 서비스에 어느 정도의 자원을 할당해야 하는 가에 대한 지표도 얻을 수 있어 서비스 제공자가 경제적인 선택을 할 수 있게 돕기도 한다.
이를 통해 서비스에 적은 자원을 투하여 서버가 다운되는 문제, 많은 자원을 투입하여 낭비가 발생하는 문제 등을 감소시킬 수 있다.
성능 테스트의 종류 및 목적
성능 테스트는 여러 종류가 있으며 각각의 목적을 이루기 위해 수행된다.
대표적인 성능 테스트에는 부하 테스트, 스트레스 테스트, 안정성 테스트 등이 있다.
부하 테스트
예상되는 최대 사용자 수나 트랜잭션 양을 부여하여 시스템이 얼마나 효율적으로 동작하는지 평가
=> 시스템이 정상적인 작업 부하를 처리할 수 있는지 확인
ex) 웹 사이트에 1000명이 동사 접속했을 때 응답시간이 얼마나 되는지?
스트레스 테스트
시스템에 점진적으로 부하를 증가시켜 시스템이 결딜 수 있는 최대 한계치를 찾고 한계를 초과했을 때 시스템이 어떻게 반응하는지 확인
=> 시스템의 한계를 테스트하고, 과부하 상황에서 어떻게 동작하는지 평가
ex) 서버에 점점 더 많은 사용자를 추가하여 응답 시간의 변화를 관찰하고 시스템이 다운되는 지점을 찾음
안정성 테스트
메모리 누수, 자원 소모, 시스템 충돌 등의 문제를 발견하기 위해 일정한 부하를 장시간 동안 가함
=> 시스템의 안정성과 지속 가능성을 평가
ex) 애플리케이션을 24시간 연속으로 실행하여 메모리 누수나 성능 저하가 발생하는지 확인
성능 테스트를 위한 도구
성능 테스트를 수행하기 위한 도구로 JMeter, LoadRunner, Locust, ngrinder 등이 존재한다.
이러한 도구들을 활용하면 실제 사용자가 시스템을 사용하는 것과 비슷한 환경을 구성할 수 있으며 해당 환경에서 얻은 테스트 결과를 분석하여 시스템의 성능 지표를 얻어 관련 문제를 정확하고 효율적으로 개선할 수 있다.
이번 프로젝트에서는 JMeter를 활용할 생각이다.
중점적으로 살펴볼 지표
1. CPU 사용량
서버의 CPU 사용량은 곧 서버가 처리중에 있는 작업의 양을 의미한다.
과도한 CPU 사용량이 식별된다면 서버의 성능 저하 및 부하를 초래할 수 있기 때문에 조치를 취해야 한다.
2. 메모리 사용량
서버의 메모리 사용량은 서버에서 사용중인 메모리의 양을 의미한다.
메모리 사용량이 높다면 이 또한 서버의 성능에 영향을 미칠 수 있으므로 지속적인 추적이 필요하다.
3. 네트워크 트래픽
웹 서버에서 네트워크 트래픽은 서버로 들어오늘 요청, 서버에서 나가는 응답의 양을 의미한다.
트래픽이 많은 경우 서버의 부하와 성능 저하를 야기시켜 지속적인 추적과 관리가 필요하다.
4. 디스크 사용량
서버의 디스크 사용량은 서버에 저장된 데이터와 로그 파일의 양을 의미한다.
디스크 사용량이 높으면 서버 성능에 영향을 미치기 때문에 디스크 상태를 관찰하고 필요한 경우 정리해야 한다.
5. 요청 처리 시간
서버에서 처리되는 요청의 평균 처리 시간이나 각 요청의 처리 시간을 확인하여 서버의 응답성을 평가할 수 있다.
이 때 처리 시간이 긴 요청을 식별하고 분석하여 성능을 개선한다.
https://f-lab.kr/insight/importance-of-performance-testing
IT 분야에서의 성능 테스트의 중요성과 기술
IT 분야에서 성능 테스트의 중요성과 다양한 성능 테스트 기술 및 도구에 대해 설명하는 글입니다.
f-lab.kr
https://f-lab.kr/blog/importance%20of%20performance%20Testing
성능 테스트의 중요성과 목적 그리고 효과
서비스의 트래픽이 성장세에 있을 때 이 서비스에 얼마만큼의 자원 할당이 필요한지 알고 있는가?
f-lab.kr