diff --git a/README.md b/README.md index 0eff36a..6b31831 100644 --- a/README.md +++ b/README.md @@ -47,28 +47,61 @@ ## Dir ```PlainText -src - ㄴmain - ㄴcommon - ㄴenums - ㄴexception - ㄴresponse - ㄴstatus - ㄴannotation - ㄴutils - ㄴbase - ㄴconfig - ㄴentity - ㄴcontroller - ㄴservice - ㄴrepository - ㄴconverter - ㄴdto - ㄴrequest - ㄴresponse +src/ +├── main/ +│ ├── common/ +│ ├── enums/ +│ ├── exception/ +│ ├── response/ +│ ├── status/ +│ ├── annotation/ +│ ├── utils/ +│ ├── base/ +│ ├── config/ +├── entity/ +├── controller/ +├── service/ +├── repository/ +├── converter/ +└── dto/ + ├── request/ + └── response/ + ``` +## 부하 테스트 +가장 요청이 많을 것으로 예상되는 `견적서 요청 API`에 대해 K6을 이용해 부하테스트를 진행했습니다. + + +|10명이 1초 동안 최대한의 요청을 보낸다.|2000명이 1초 동안 최대한의 요청을 보낸다.| +| :-------| :-------| +|image|image| +|- 총 119개의 요청이 문제없이 처리됨
- 평균 요청 처리 시간 : 83.75ms
- 최소 요청 처리 시간 : 55.41ms
- 최대 요청 처리 시간 : 160.37ms |- 총 2000개의 요청이 문제없이 처리됨
- 평균 요청 처리 시간 : 14.92s
- 최소 요청 처리 시간 : 1.4s
- 최대 요청 처리 시간 : 23.15s| + +
+ +|사용자 수 변동 시나리오|응답 시간이 5초 이내인 최대 요청 수 파악|서버 복원력 측정| +| :-------|:----|:----| +|image|image|image| +|0초 ~ 2초 : `50명`, 2초 ~ 12초 : `300명`, 12초 ~ 17초 : `1000명`, 17초 ~ 18초 : `500명`|5초가 지날 경우 사용자 이탈이 늘어날 것이라고 판단하여 1초 동안 500명의 사용자가 요청을 보내 `요청 처리 시간이 5초 이내`인 요청 개수를 파악 |서버에 과부하가 왔을 때 복원력을 측정 +|- 총 2686개의 요청이 문제없이 처리됨
- 평균 요청 처리 시간 : 3.62s
- 최소 요청 처리 시간 : 41.86ms
- 최대 요청 처리 시간 : 9.19s |- 총 263개의 요청이 처리됨
- 나머지 238개의 요청도 성공하였지만, 최대 요청 처리 시간으로 설정한 5초 이내에 응답이 오지 않음|- 1초 동안 3000명의 사용자 시나리오로 테스트를 진행했을 때, 일시적으로 서버에 과부하가 와 요청이 처리되지 않았음
- 2초 정도 서버에 과부하가 왔지만, 이후 3초 이내에 바로 복원되는 것을 확인함 | + + +### 부하테스트 결과 분석 + +**1. 동시접속자 수가 많아질수록 요청 처리 시간이 늘어난다.** +- 동시접속자 수가 10명일 때의 평균 요청 처리 시간은 0.088초, 최대 0.16초이다. +- 동시접속자 수가 2000명일 때의 평균 요청 처리 시간은 14.92초, 최대 요청 처리 시간은 23.15초이다. + + 현재 스마트인슈어런스 사이트에서 `견적 받기`를요청하는 사용자가 2달 동안 500여 명 정도인 것을 미루어 봤을 때, 요청 처리 시간이 오래 걸려 사용자 이탈이 일어날 확률은 아주 낮다. + +**2. 스마트 인슈어런스의 사용자가 늘어날 것을 예상** +- `사용자 수 변동 시나리오`를 통해 지속적으로 많은 사용자가 유입될 경우에도 요청이 문제 없이 잘 처리되는 것을 확인하였다. +- 응답 시간이 5초가 넘어갈 경우, 사용자 이탈이 늘어날 것이라 예상해, `응답 시간이 5초 이내인 최대 요청 수 파악` 시나리오를 통해 확인한 결과, 1초에 263개의 요청을 모두 5초 이내에 처리할 수 있음을 파악하였다. +- `서버 복원력 측정` 시나리오를 통해, 동시접속자가 3000명일 때 서버에 일시적으로 과부하가 왔으나, 이내 3초만에 바로 복원되어 다음 요청이 잘 처리되는 것을 확인하였다. + +