241212 TIL - oreno turn wk5 (4)

LIHA·2024년 12월 13일
1

내일배움캠프

목록 보기
131/136
post-thumbnail

뼈대잡기

오늘 할일

  • 제이미터로 단위시간 접속자 수 증가에 따른 지연시간 보기
  • 위의 결과 가시적 데이터로 뽑아내기

트러블슈팅

일단 벨로그에서 표 그리는 방법부터 좀...

참고 블로그
구원의 블로그 덕분에 살았다. 야호!
요약하자면 아래와 같이 쓰면 된다고.
|--|--| 이게 있어야 표가 그려지고, -의 갯수는 크게 상관이 없다고 한다.

|동접자|속도|
|-|-|
3명|0.001ms

서버 성능 테스트는 왜 하려는걸까?

참고 블로그

백엔드 코드 짜고 로컬호스트에서 정상 동작한다고 끝이 아니다

우리의 게임에는 언제 몇 명이 몰려서 어떤 부하가 쏟아질 지 모른다.
그걸 위해서라도 서버 부하 테스트는 이루어져야 한다.

JMeter 사용을 통해 얻어가려는 것

  • 실시간 게임에서 중요한 요소
    -> 레이턴시, 동시성 관련 중요 지표
    -> 그래프로 시각화 해서 볼수 있으면 좋을 것

제미니에게 물어본 동시성 관련 중요 지표

  • FPS
  • 입력 지연
  • 프로세서 사용률
  • 메모리 사용률
  • GPU 사용률
  • 네트워크 지연
  • 쓰레드 수
  • 쓰레드 동기화 오버헤드

동혁님이 알려주신 서버 성능 주요지표

  1. 동접자 수
  2. 지연시간
  3. 처리량
  4. 네트워크 대역폭
  5. CPU 및 메모리 사용량
  6. DB 성능

그래서 우리의 목표

단위 시간 당 동시 접속자 수 증가에 따른 지연 시간, 처리량 시각화를 하면 좋겠다

  • 단위 시간은 60초로 하자
  • 지연 시간에 대한 데이터가 추출되어야 한다
  • 일단 지연시간을 보자. 처리량은 안되면 일단 보류해도 ok

예시

동접자 수지연 시간
10명0.1ms
30명0.3ms

분산서버와 도커와 JMeter 그 사이 어딘가

컨테이너를 ECS에 등록하잖슴?
ECS도 도커 컴포즈도 컨테이너 갖고와 엮는거긴 한데, ECS는 배포를 해주는거고 컴포즈는 그냥 컨테이너를 묶어주는 용도.
-> 그런데 컴포즈는 좀더 테스트 환경으로 쓰기에 적합하다
-> 그러니 예은님이 작업을 완료해주시면 컴포즈를 받아서 여기서 테스트를 돌려보고 결과를 시각화 해보면 좋겠다
-> 그러면 우리가 JMeter를 쓰는 이유, 분산서버를 해야하는 이유 등의 근거가 나올 것


JMeter

그래서 제이미터에서 그래프 뽑으려면 - 일단 플러그인부터 설치하자

홈페이지의 안내를 따라 플러그인을 무사히 설치하고 나면 다음과 같이 뜰 것이다.

유정 튜터님의 추천 플러그인

플러그인 페이지
참고 블로그

이 플러그인은 그래프를 그려주는 것 같은데, 정확히는 시각화만 해줄 뿐 데이터 수집은 다른 플러그인이나 리스너/샘플러를 써야한다.

레이턴시를 보고 싶으면 - 레이턴시를 수집해주는 플러그인을 설치하자

Composite Graph 플러그인을 사용하기 위해 시간에 따른 응답값, 레이턴시 그래프와 초당 트랜잭션 수 등을 수집해주는 플러그인을 깔아보았다.

3 기본 그래프에는 다음 요소가 있다.

  • 평균 응답시간
  • 활성 쓰레드
  • 성공/실패한 트랜잭션 수


쓰루풋이 뭐지? - 참고 블로그
5 추가 그래프는 다음 요소가 있다.

  • 응답 코드
  • 바이트 처리량 (*쓰루풋 - 네트워크 대역폭 측면에서의 전송률)
  • 연결 시간
  • 레이턴시
  • 초당 히트수 (? 뭐지 이건)

그외

알고리즘이 안풀려요 - 동혁님의 조언

테스트는 통과하는데 제출하면 다 틀린다? -> 뭔가 문제를 잘못 이해하고 있을 가능성이 높다.

profile
갑자기 왜 춤춰?

0개의 댓글