728x90
반응형
부하테스트가 끝나면 Detail Report를 볼 수 있다.
Detail Report 페이지에서는 Performance 결과를 볼 수 있는데, 여기에 Download CSV로 결과 데이터를 csv 파일로 다운로드 받을 수 있다.
csv파일을 받아보았고, 그 안에는 다음과 같은 지표들의 값들이 시간에 따라 기록되었다.
Date Time, vuser, Tests, Errors, Mean_Test_Time(ms), Test_Time_Standard_Deviation(ms), TPS, Mean_response_length, Response_bytes_per_second, Response_errors, Mean_time_to_resolve_host, Mean_time_to_establish_connection, Mean_time_to_first_byte
10가지 되는 것 같고, 나중에 문서화 해야하니 각각 지표가 의미하는 바를 정리해보자.
나의 질문 nGrinder의 Perfornance에서 다운받아 볼 수 있는 csv Report에서, Date Time, vuser, Tests, Errors, Mean_Test_Time(ms), Test_Time_Standard_Deviation(ms), TPS, Mean_response_length, Response_bytes_per_second, Response_errors, Mean_time_to_resolve_host, Mean_time_to_establish_connection, Mean_time_to_first_byte 들의 의미를 알려줘. ChatGPT 답변 1) Date Time: 부하 테스트의 각 데이터가 기록된 날짜와 시간을 의미합니다. 이 값은 테스트가 실행된 특정 시점의 타임스탬프를 나타내며, 부하 테스트가 어느 시간대에 어떤 성능을 보였는지 여부를 확인할 수 있습니다. 이를 통해 부하 테스트가 진행되는 동안 특정 시간 구간에 성능이 저하되었는지 여부를 확인할 수 있습니다. 2) vuser: Virtual Users(가상 사용자)의 수를 의미합니다. 이는 테스트가 진행될 때 동시에 실행된 가상 사용자의 수를 나타내며, 이 수치만큼의 가상 사용자가 서버에 동시에 요청을 보낸 것입니다. 예를 들어, vuser 값이 20이라면, 20명의 가상 사용자가 동시에 서버에 요청을 보낸 것을 의미합니다. vuser 값은 부하의 크기를 조절하는 중요한 설정이며, 더 많은 vuser 수를 사용하면 서버에 더 큰 부하가 가해집니다. 3) Tests: 해당 시간 동안 성공적으로 실행된 테스트 횟수를 의미합니다. 이 값은 동시 가상 사용자가 보낸 요청 중 성공적으로 완료된 테스트 수를 나타냅니다. 4) Errors: 에러 발생 횟수를 나타냅니다. 테스트 중 발생한 실패한 요청의 수를 기록하며, 이 값이 높다면 서버가 제대로 응답하지 못했거나 문제가 있었음을 의미합니다. 5) Mean_Test_TIme (ms): 테스트가 성공적으로 완료된 평균 응답 시간을 밀리초(ms)단위로 나타냅니다. 각 요청에 대한 서버의 응답 시간을 평균한 값입니다. 값이 클수록 응답 속도가 느린 것을 의미합니다. 6) Test_Time_Standard_Deviation (ms): 테스트 시간의 표준편차로, 각 테스트 응답 시간이 얼마나 일정하지 않았는지를 나타냅니다. 표준 편차가 클수록 응답 시간이 들쑥날쑥했다는 의미입니다. 7) TPS(Transaction Per Seconds): 초당 처리된 트랜잭션 수를 의미합니다. 서버가 초당 얼마나 많은 요청을 처리할 수 있는지를 나타내며, 부하에 따라 이 값이 감소하거나 더 이상 증가하지 않을 수 있습니다. |
그렇다면 TPS가 어느 정도 나와야 부하가 걸린다고 생각할 수 있을까? 이에 대한 기준이 있을까?
반응형
ChatGPT 답변 TPS(Transcation Per Seconds, 초당 트랜잭션 수)는 시스템의 성능을 평가하는 중요한 지표입니다. 하지만 TPS가 어느 정도 나와야 부하가 걸린다고 판단할 수 있는지는 서버의 특성, 테스트 환경, 서비스의 목적에 따라 다릅니다. 이를 위해 몇 가지 요소를 고려해야 합니다. 1) 시스템의 목표 성능 기준 각 시스템마다 처리할 수 있는 TPS 목표치가 다릅니다. 예를 들어 대용량 트래픽을 처리하는 웹 서버는 초당 수백 TPS 이상을 처리할 수 있어야 하며, 소규모 API 서버는 초당 수십 TPS 정도가 적당할 수 있습니다. 2) TPS가 의미하는 부하 높은 TPS는 동시 요청 수가 많거나, 서버가 빠르게 응답하고 있다는 뜻입니다. 낮은 TPS는 서버가 응답 속도가 느리거나 요청을 처리하지 못하고 있거나, 또는 요청이 너무 적게 들어오는 경우일 수 있습니다. 3) 부하 테스트 시 TPS 기준 일반적으로 다음과 같은 기준으로 TPS를 해석할 수 있습니다. A. 낮은 TPS (0.1 ~ 1 TPS) 서버가 요청을 거의 받고 있지 않거나, 요청 처리에 매우 많은 시간이 걸리고 있을 수 있습니다. 이 경우 서버의 성능이 좋지 않거나 부하가 걸린 만큼 많은 요청을 받지 않았다고 판단할 수 있습니다. B. 중간 TPS (5 ~ 20 TPS) 적당한 요청을 처리 중이며, 일부 부하가 발생할 수 있는 환경일 수 있습니다. 요청 수가 급증하면 성능이 저하될 가능성이 있으며, 적정 부하를 테스트하는 단계로 볼 수 있습니다. C. 높은 TPS (50 ~ 200 TPS 이상) 시스템에 부하가 걸리기 시작하는 구간입니다. 특히, 서버가 100 TPS 이상을 처리하고 있다면, 동시 처리 능력이 한계에 도달했거나 도달할 가능성이 높습니다. TPS가 계속 증가하고 있다면, 시스템이 어느 시점에서 병목 현상이나 성능 저하가 발생할 수 있습니다. D. 매우 높은 TPS (500 TPS 이상) 매우 높은 트랜잭션 처리 수치로, 대규모 시스템에서 처리하는 수치입니다. 서버가 정상적인 응답을 유지할 수 있는 한계에 도달했을 가능성이 큽니다. 이 단계에서 서버의 CPU, 메모리 사용량이 급격히 증가하고, 응답 시간이 느려지거나 에러율이 상승할 수 있습니다. 4) 실제 TPS의 해석 방법 부하 테스트의 목적은 서버가 몇 TPS 수준에서 성능 저하나 문제가 발생하는지를 파악하는 것입니다. 현재 시스템의 용량에 따라 TPS가 높아질수록 성능이 저하되는 임계점이 어디인지를 확인해야 합니다. 테스트를 통해 부하가 걸리는 수준(TPS)를 파악하고, 그에 맞춰 서버를 최적화하거나 확장 계획을 세워야 합니다. 5) 부하가 걸린다고 판단할 수 있는 기준 부하 테스트 중에 부하가 걸린다고 판단할 수 있는 TPS는 다음과 같은 지표들과 함꼐 해석해야 합니다. - 응답 시간이 현저히 증가한다 - 에러율이 증가한다 - CPU, 메모리, 네트워크 사용량이 급격히 증가한다 - TPS가 일정 이상에서 급격히 감소하기 시작한다(서버가 더 이상 요청을 처리하지 못하는 상황) |
그럼 이어서 계속 정리해보겠다.
ChatGPT 답변 7) Mean_response_length: 서버에서 반환한 응답의 평균 크기를 나타냅니다. 즉, 각 요청에 대한 응답의 평균 바이트 수입니다. 응답 크기가 클수록 더 많은 데이터를 전송하는 것을 의미합니다. 8) Response_bytes_per_second: 초당 전송된 응답 바이트 수를 나타냅니다. 서버가 일정 시간 동안 얼마나 많은 데이터를 응답으로 반환했는지를 보여줍니다. 9) Response_errors: 응답에서 발생한 에러 수를 나타냅니다. 응답 자체에서 발생한 예러, 즉 요청이 제대로 처리되지 않거나 서버가 에러를 반환한 경우를 기록합니다. 10) Mean_time_to_resolve_host: 서버와의 연결을 시도하기 전에 호스트를 해석하는 데 걸린 평균 시간입니다. DNS 조회 시간과 관련있으며, 서버 주소를 찾는 데 걸린 시간을 의미합니다. 11) Mean_time_to_establish_connection: 서버와의 연결을 설정하는 데 걸린 평균 시간입니다. 서버와 TPS 연결을 맺기까지 걸린 시간을 측정합니다. 12) Mean_time_to_first_byte: 서버가 첫 번째 바이트를 응답으로 보내는 데 걸린 평균 시간을 의미합니다. 서버가 요청을 처리한 후, 처음으로 응답을 보내기까지 걸린 시간을 측정합니다. 이 각 항목들은 서버의 응답 성능을 다각도로 분석할 수 있는 주요 지표로, 서버의 응답 속도, 에러율, 데이터 전송량 등을 종합적으로 평가할 수 있습니다. |
728x90
반응형
'혼자 공부하기 > AI와 개발 노트' 카테고리의 다른 글
[Cursor AI] Cursor AI 시작하기 - 홈페이지 둘러보기(Features) (0) | 2024.09.28 |
---|---|
[Cursor AI] Cursor AI 시작하기 - Intro. (0) | 2024.09.28 |
처음 해보는 부하 테스트(nGrinder) - (3) (0) | 2024.09.23 |
처음 해보는 부하 테스트(nGrinder) - (2) (0) | 2024.09.21 |
처음 해보는 부하 테스트(nGrinder) - (1) (0) | 2024.09.21 |