본문 바로가기

개발일지/TIL

[230828] 입찰 API 응답 Average Latency 속도 문제

입찰 API 응답 Average Latency 속도가 느림

💬 입찰 API 로직 개선 이후 Jmeter로 테스트를 진행했습니다. 테스트는 SSE 1500명 연결에 입찰 1분에 1만 건을 보내는 것이었습니다. 테스트 결과를 보니 평균적으로 Average Latency가 약 1.6초 정도가 나오는 것을 확인했습니다. Latency가 1초 이내에 왔으면 하기 때문에 문제의 원인을 확인해 보기로 했습니다.

 

✔ 문제 원인 가정 - 01

💬 SSE에서 이벤트를 클라이언트에게 보낼 때 For문을 돌게 됩니다. 1500명의 유저에게 각 입찰마다 데이터를 보내다 보니 이것으로 인해 속도가 느려진다고 가정을 해보았습니다. 그래서 실제로 맞는지 테스트를 해보았습니다.

1. SSE 1500명 연결, 1분 1만 건 입찰 요청, 데이터 보내기

2. SSE 1500명 연결, 1분 1만 건 입찰 요청, 데이터 보내기 없음

 

 

 

✔ 문제 원인 가정 - 02

💬 SSE 연결 자체가 서버의 자원을 사용하기 때문에 연결이 늘어날수록 기본 API 응답에 영향을 미칠 것이라고 생각했습니다. 그래서 SSE를 연결하지 않고 테스트를 해보았습니다.

1. SSE 연결 없음, 1분 1만 건 입찰 요청

 

✔ 문제 원인 및 해결 방법

💢 Jmeter로 테스트 결과 SSE 연결과 데이터를 전송하는 부분이 실제로 다른 API 응답 Latency를 늦춘다는 것을 확인할 수 있었습니다.

✅ API 응답 Latency에 영향을 주는 SSE 서버를 분리한다면 Average Latency가 감소하는 것을 기대해 볼 수 있습니다. 
   ➡ SSE 서버 분리