개발 공부/WEB이야기 2

간단하게 API 스트레스 테스트 하는 법

사용하고 있는 아파치 서버 배포 직전, 과연 이 서버가 얼마나 버텨줄지 궁금해졌다. 현재 배포중인 서비스는 얼만큼의 스트레스를 버텨줄 것인가? 1. apaceh2-utils를 설치한다. sudo apt install apache2-utils 2. 원하는 스트레스 테스트 양을 설정후 던진다 ab -n 1000 -c 100 http://evaluation.42seoul.link/ // 100개의 클라이언트에서 1000개의 요청을 던져라! 라는 뜻 3. 결과를 확인한다.(프론트 요청) [알 수 있는 정보] 1. 99% 요청이 451ms안에 처리되었으니 엣지케이스에서도 성능이 준수하게 나옴을 알 수 있다(가장 긴 요청시간은 749ms으로 특수케이스임을 감안했을 때 인내할 수 있다고 판단된다) 2. 평균 요청 처..

Request를 최소로 해야되는 이유

최근에 42서울에 있는 모든 사람들의 유저 데이터를 가져와야되는 이유가 생겼다. 그래서 42API로 전체를 가져오는 로직을 제작하고 있었는데, 이 과정에서 너무 많은 시간이 걸리는 것을 인지하고 최적화에 나섰다. 처음 시도한 방법은 기본적인 API요청을 기반으로 요청을 작성하였는데, 기본적인 페이지 사이즈는 30이었다. 즉, 한번 GET요청을 던지면 서버에서는 30명의 정보를 내게 리턴해주는 방식으로 작동하였다. 사실 30명이라는 사이즈가 그렇게 크지는 않았지만 전체인원(42를 그만두거나 블랙홀에 빠진 인원)을 포함하여 모두를 가져오다보니, 총 요청이 270번 정도 작동하는 문제가 있었다. 컴퓨터에서 비용은 레지스터