2) 성능 및 부하 테스트를 위한 준비사항
앞서 얘기 한 것처럼, API Gateway는 API 요청 및 응답의 출입문 역할을 합니다. 성능 및 부하테스트의 대상은 Proxy 기능을 하는 API Gateway 입니다.
테스트의 목적은 초당 얼마나 많은 요청을 처리할 수 있는지, 시스템 자원(CPU, Memory)을 얼마나 많이 사용하는지를 확인 하고, 비교하는 것입니다.
-
API Gateway 준비하기
- 별도의 서버 준비
- 테스트 기능
- Proxy: Client로부터 API 요청을 받아 API 서버에 요청 전달 및 응답을 Client에 전달
- 비교 테스트를 위한 Tomcat + Proxy Servlet 추가 준비
-
API 준비하기
- 별도의 서버 준비
- API
- 요청을 받으면 4kbytes json 응답을 만들어 전달
-
Client 준비하기
- 별도의 서버 준비
- 테스트 툴중 nGrinder 오픈 소스 사용
- 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 뺌)