2) 성능 및 부하 테스트를 위한 준비사항
앞서 얘기 한 것처럼, API Gateway는 API 요청 및 응답의 출입문 역할을 합니다. 성능 및 부하테스트의 대상은 Proxy 기능을 하는 API Gateway 입니다.
테스트의 목적은 초당 얼마나 많은 요청을 처리할 수 있는지, 시스템 자원(CPU, Memory)을 얼마나 많이 사용하는지를 확인 하고, 비교하는 것입니다.
1.
API Gateway 준비하기
•
별도의 서버 준비
◦
CPU: 4CPU
◦
Memory: 8G
•
테스트 기능
◦
Proxy: Client로부터 API 요청을 받아 API 서버에 요청 전달 및 응답을 Client에 전달
•
비교 테스트를 위한 Tomcat + Proxy Servlet 추가 준비
2.
API 준비하기
•
별도의 서버 준비
◦
CPU: 4CPU
◦
Memory: 8G
•
API
◦
요청을 받으면 4kbytes json 응답을 만들어 전달
3.
Client 준비하기
•
별도의 서버 준비
◦
CPU: 4CPU
◦
Memory: 8G
•
◦
nGrinder Controller, Agent, Monitor 준비
•
참고로, nGrinder의 장점은 타켓이 되는 서버의 시스템 자원 측정을 위한 Monitor를 제공하여, 테스트 이후 TPS와 함께 CPU, Memory 정보를 UI로 확인할 수 있다는 것과, Agent를 별도로 두어 동접자를 늘릴 수 있다는 것입니다.
3) 성능 및 부하 테스트 실행 및 결과
•
테스트 환경
◦
동접자: 100 users (5개 프로세스 * 각 20개 쓰레드)
◦
테스트 시간: 5 minutes
◦
테스트 1
▪
[Client] — https → [OSORI API Gateway] — https → [API Server: 4k json]
◦
테스트 2
▪
[Client] — https → [Tomcat + Proxy Servlet] — https → [API Server: 4k json]
•
테스트 결과
◦
OSORI API Gateway
▪
평균 TPS: 11,177
▪
5분간 처리된 요청/응답 수: 3,310,757
▪
평균 CPU 사용률: 76%
▪
평균 Memory 사용률: 0.3G (Monitor 프로세스의 사용률 1.5G 뺌)
◦
Tomcat + Proxy Servlet
▪
평균 TPS: 6,232
▪
5분간 처리된 요청/응답 수: 1,845,405
▪
평균 CPU 사용률: 91%
▪
평균 Memory 사용률: 2.7G (Monitor 프로세스의 사용률 1.5G 뺌)
4) 요약
구분 | 평균 TPS | CPU 사용율 | 메모리 사용량 | 요청처리수/5분 |
JAVA 기반 Tomcat + Proxy server | 6,232 | 91% | 2.7G | 1,845,405 |
RUST 기반 OSORI API Gateway | 11,177 | 76% | 0.3G | 3,310,757 |
OSORI의 경우 Tomcat 보다 2배 가까운 TPS 성능을 보여주었다. 5분간 처리된 요청/응답 수를 보면 Tomcat 보다 150만건 정도 더 처리한 것을 볼 수 있다. (단순히 API 요청 처리 한건당 10원 이라 생각해보면, 1500만원을 더 벌어들인 것이다.)
한가지 더 주목해 보아야 할 것은, 더 많은 요청을 처리하면서 CPU 사용률은 15% 더 낮고, Memory 사용량은 Tomcat보다 11%밖에 사용하지 않는 다는 것이다.
(궁금증, 호기심, 가이드, 공유 등)커피챗이나 미팅 요청은 언제든 환영입니다!
채널톡으로 편하게 연락주세요!
#위베어소프트 #오소리 #OSORI #오픈API #APIGateway #APIM #API관리 #API게이트웨이 #API포털 #API플랫폼 #API솔루션 #API마켓