[Scouter] Scouter를 활용한 성능측정 및 개선 (2)

한호성·2024년 4월 17일
0

성능측정

목록 보기
2/7

Introduction

SpringBoot를 활용한 Wep Application server 를 만든 후, 내가 만든 서버의 안전성 및 가용성을 확인하기 위해 부하 툴과 모니터링 툴을 활용해 알아보려고 합니다. 성능측정에 필요한 개념부터 직접 성능을 테스트 하고 어떤 점들을 개선했는지 적어보도록 하겠습니다.


Index

  • scouter를 활용한 성능측정을 위한 기본 세팅 및 아키텍처

scouter를 활용한 성능측정을 위한 기본 세팅

스카우터를 사용하기 위해 필요한 것들

위 그림을 보면 scouter를 사용하기 위해 필요한 것들을 알 수 있다. 간단하게 나의 말로 설명해보자.
scouter 공식 다운로드 깃헙

Scouter Java Agent

  • 내가 사용할 Java 프로그램의 붙여서 사용할 Scouter Agent이다. 내가 사용하는 Java Application의 상태가 어떤지 수집해서 Scouter Collector에게 전달해주는 역할을 한다.

  • 사용법은 간단하게 scouter 공식홈페이지에서 다운을 받고,scouter폴더 내부의 server, agent.java, agent.host의 config 세팅을 하고 사용하면 된다.

  • 나는 스프링 부트의 .jar 파일을 javaagent를 붙여서 사용했다.

  • 아래와 같이 하면 된다. 경로는 상대경로를 잘 세팅해줘서 사용하면 된다.

  • java -javaagent:scouter/agent.java/scouter.agent.jar -jar ./build/libs/{사용할.jar}

  • 기존의 스프링 부트가 뜨기전에, scouter 실행 로그가 나올 것이다.

  • 디렉토리 구조를 간단하게 사진으로 첨부하겠다.

Scouter Host Agent

  • 내가 사용할 컴퓨터의 정보(OS, CPU, Memomory, Disk) 를 scouter Collector에 전달하기 위한 부분이다.
  • 다운받은 host.java에서 conf 파일에서 설정 세팅해주고 os에 맞게. host.sh,host.bat을 실행시켜주면 된다.

  • 다시 한번 정리하자면
    • host agent는 WAS를 실행할 컴퓨터에서 실행시켜주고,
    • java agent를 붙인 Was를 띄어주면 된다.
    • 이제 WAS 사용량과 WAS를 실행시킨 컴퓨터의 정보를 Scouter Collector에서 받을 수 있게 된다.

Scouter Collector

  • java agent, host agent의 정보를 받을 서버를 의미한다.
  • 마찬가지로 scouter의 conf 설정을 하고 서버를 키면 된다.

Scouter Client

  • Scouter Collector 들어오는 데이터를 관찰하기 위한 client 파일이다.
  • 마찬가지로 scouter의 client파일을 다운받고 실행시키고 키면 된다.

#cf) 뭐이렇게 켜야할게 많아 이럴 수 있지만 세팅을 하나씩 차분히 하다보면 결과에 도달할 수 있다.
필자의 경우

  • WAS를 띄울 컴퓨터 1대 (Scouter Host Agent, Scouter java Agent)
  • 모니터링 + 부하를 줄 컴퓨터 1대 (Scouter Collector, Scouter Client, Gatling)
  • DB 전용 컴퓨터 1대 (Postgres)

이렇게 총 3대의 컴퓨터를 활용해서 공유기를 써서 내부 망으로 환경을 구축했다.
(컴퓨터가 여러대가 아니라면, aws cloud를 활용해서 하는 것도 방법이겠다.. 기타 네트워크 포트열고하는 작업들을 해줘야 한다.. 내부망은 그런건 필요 없었다.. 돈이 얼마나 나올지..?)

( 환경세팅만 거의 하루 반정도 걸린거 같다. 도커로 띄워보기도 하고 이것저것 테스트를 많이 하다보니 시간이 순삭..)

Gatling

  • 마지막으로 부하를 줄 툴로 Gatling을 선택했다.

  • 부하를 줄 컴퓨터를 따로 뒀어도 좋았겠지만, 컴퓨터의 개수의 한계로.. 가장 사용량이 적을거 같은 모니터링하는 곳에서 같이 부하를 주기로 했다.

  • Gatling을 다운받고 원하는 언어로 script를 짜고 부하를 주면된다. 이 부분은 구체적으로 부하테스트를 진행하고 이어서 작성해보도록 하겠다.

  • 강의하신 분에 설명에 따르면 단일 노트북으로 부하를 줄 때, 적당한 툴이라고 알려주셨다. 이전에 ngrinder로 부하주다가 컴퓨터가 먹통이 된적이 있었는데, Gatling으로 테스트를 간단하게 해봤을 때, 잘 작동했다. 이런 꿀팁을 받는것이 강의의 장점이 아닌가 싶다..

    마지막으로 아키텍처 그림을 간단하게 그려보았다..

Reference

scouter를 활용한 시스템 장애 진단 및 해결 노하우 (저자 이상민)

The RED : 성능의 神: 궁극의 성능 튜닝과 트러블슈팅 by 이상민

profile
개발자 지망생입니다.

0개의 댓글