nGrinder는 네이버에서 성능 측정을 위해 개발되었고 최근 들어 생각하는 것은 대용량 트래픽을 관리를 할 수 있어야 하는데 그거에 대한 역량을 키워보고 싶어서 차근차근해볼 것이다!
위 url에 들어가서 war 파일을 받아준다!
그리고 파일 위치로 cmd 창을 켜서
java -XX:MaxMetaspaceSize=200m -jar ngrinder-controller-3.5.8.war -p 사용할 포트번호
위 명령어를 쳐주면 되는데 기존에 찾아본 명령어들은 MaxMetaspcaeSize가 아닌 MaxPermSize였는데 이거는 JVM에서 안 먹히는 것 같았다. 그래서 위처럼 입력해주면 된다.
(만약 오류가 날 시 자바 버전은 11로 사용해야 한다.)
그리고 localhost:포트번호로 접속해주면
이렇게 뜨는 것을 볼 수 있다.
초기 아이디와 비밀번호는 admin / admin이다.
접속을 하면 다음과 같은 창이 뜨고
알림 메시지대로 에이전트를 다운로드해준다.
다운로드한 에이전트를 압축을 풀어준 후 cmd를 켜준 후
run_agent.bat
를 입력해주면
위와 같이 뜨는데 이렇게 뜨면 정상이다.
스크립트 생성
스크립트 클릭 후 만들기 선택 -> 스크립트 만들기
테스트할 URL 작성과 GET 방식인지 POST 방식인지 선택한 다음 헤더나 쿠키, 파라미터 정보가 필요하면 기입하고 만들기
그러면 스크립트가 생성이 된다.
그리고 우측 상단의 검증 버튼을 눌러주면
다음과 같이 로그가 뜨고
서버에도 연결됐다는 로그를 띄워준다!
만약 검증을 눌렀는데 아래와 같은 로그가 뜨면 자바 버전 11로 낮추면 해결된다.
성능 테스트(부하 테스트)
위와 같이 해주면 된다.
테스트 기간은 최소 5분 정도로 해주면 좋고 테스트 수행 간에 연결 재설정은 체크 해제를 해주면 오류가 나지 않는다.
참고로 에이전트별 가상 사용자는 1초당 들어오는 클라이언트라고 생각하면 되는데 처음에는 100 단위로 해주는 것이 좋다
(3000으로 하니 몇 초 지나지 않아 오류 발생됨)
지금 시작 클릭!
그렇게 5분이 지나고 완료가 되면 보고서가 뜨는데 우리가 봐야 할 부분은 TPS, 평균 테스트 시간, 에러(로그)를 보면 된다.
- TPS는 높을수록 좋다.
- 평균 테스트 시간은 낮을수록 좋다.
- 에러는 없을수록 좋다.
그리고 서버를 보면
로그를 매우 많이 남겨둔 것을 볼 수 있다.
이렇게 nGrinder를 사용하면 되고 사실 로컬 호스트로 서버를 열어 테스트하는 것보다 AWS에 서버를 올려 서버 성능 테스트를 하는 것이 바람직하다.
위 서버는 아래의 코드처럼 단순한 로직이지만 나중에 DB에 접근하고 복잡해질 때 TPS와 평균 테스트 시간을 낮추기 위해선 코드 최적화가 많이 필요할 것 같다.
@Controller
@ResponseBody
@Slf4j
public class HomeController {
@GetMapping("home")
public String home() {
log.info("connected");
return "hello";
}
}
'공부일지' 카테고리의 다른 글
객체 지향 설계의 5가지 원칙(SOLID) 정리 (0) | 2022.08.30 |
---|