리눅스
웹 서버의 최대 동시 접속자 수 및 TPS(Transactions Per Second) 측정하는 방법
코드버스
2023. 3. 22. 19:37
728x90
반응형
웹 서버의 최대 동시 접속자 수 및 TPS(Transactions Per Second) 측정하는 방법
웹 서버의 최대 동시 접속자 수 및 TPS(Transactions Per Second) 측정하는 방법은 여러가지가 있지만, 가장 일반적인 방법은 아파치 HTTP 서버 벤치마크(Apache HTTP Server Benchmark, ab)를 사용하는 것입니다.
1. 아파치 HTTP 서버 벤치마크(ab) 설치
- ab는 Apache 웹 서버와 함께 제공되는 유틸리티입니다.
- 따라서 Apache 웹 서버를 설치하면 자동으로 ab도 함께 설치됩니다.
- 아파치 HTTP 서버 벤치마크(ab)를 따로 설치하려면 Apache HTTP Server 설치 페이지에서 다운로드 받을 수 있습니다.
2. 벤치마크 명령 실행
- 벤치마크 명령은 다음과 같습니다.
ab -n [요청 수] -c [동시 접속자 수] [URL]
- [요청 수]는 총 요청 수를, [동시 접속자 수]는 동시에 접속할 수 있는 최대 접속자 수를 의미합니다.
- [URL]은 벤치마크를 실행할 웹 서버의 URL을 입력합니다.
3. 결과 분석
- 벤치마크를 실행하면 다양한 결과가 출력됩니다.
- 그 중에서도 중요한 결과는 다음과 같습니다.
- Requests per second: 초당 처리할 수 있는 요청 수입니다.
- Time per request: 요청당 처리 시간입니다.
- Concurrency Level: 동시 접속자 수입니다.
- Complete requests: 성공적으로 처리된 요청 수입니다.
- 이 결과를 분석하여 최대 동시 접속자 수와 TPS를 산출할 수 있습니다.
4. 벤치마크 실행 예시
- 예를 들어, 동시에 1000명의 사용자가 접속하고 10000개의 요청을 보내는 벤치마크를 실행한다면 다음과 같은 명령을 입력합니다.
ab -n 10000 -c 1000 http://example.com/
- 이 명령을 실행하면 아파치 HTTP 서버 벤치마크(ab)가 1000명의 사용자가 동시에 10000개의 요청을 보내는 시나리오를 실행하면서, 처리량과 응답 시간 등 다양한 정보를 출력합니다.
5. 결과 분석 예시
- 벤치마크 결과에서 중요한 정보를 추출하여 분석합니다.
- 예를 들어, 다음과 같은 결과가 있다면,
Concurrency Level: 1000
Time taken for tests: 2.760 seconds
Complete requests: 10000
Failed requests: 0
Requests per second: 3623.19 [#/sec] (mean)
Time per request: 276.002 [ms] (mean)
- 이 결과는 2.76초 동안 1000명의 사용자가 동시에 10000개의 요청을 보내며, 모든 요청이 성공적으로 처리되었다는 것을 의미합니다.
- 이 결과를 분석하여 최대 동시 접속자 수와 TPS를 계산할 수 있습니다.
- 최대 동시 접속자 수 = Concurrency Level = 1000
- TPS = Requests per second = 3623.19 [#/sec] (mean)
6. 참고 사항
- 웹 서버의 최대 동시 접속자 수 및 TPS는 하드웨어 사양, 네트워크 대역폭, 웹 서버 소프트웨어, 웹 어플리케이션 등 여러 가지 요인에 따라 다릅니다.
- 따라서 이러한 측정을 할 때는 환경을 정확하게 구성하고, 여러 번 측정하여 평균값을 계산하는 것이 좋습니다.
728x90
반응형