[Hello world 오픈세미나]n grinder...

Preview:

DESCRIPTION

 

Citation preview

nGrinder 초딩도 하는 성능 테스트

WHO AM I

30만 라인(±) / 1년

nGrinder 프로젝트 리드

디자이너 출신

윤준호 / 내년 不惑

개발자는 창조하는 사람

파괴에는 익숙하지 않다.!

정확히는 문제가 있다는 사실을 알고(알리고) 싶어하지 않는다.

이 모든 것이 핑계꺼리..

Affordance (행위 유발성)

불편함은 없애고

자랑꺼리가 될 수 있다면?

7

성능 테스트?

스트레스 테스트 로드 테스트

로드 상황에서 크래시 등의 문제점 확인

로드 상황에서 성능 특성 파악

성능 테스트 상식

8

0

500

1000

1500

2000

2500

1 2 5 10 50 100 200

Apache

Nginx

Nginx-caching

동시사용자 # (Think Time 없을 때)

초당 처리량

로드 테스트

성능 테스트 상식

부적절한 커넥션 풀?

불충분한 쓰레드 풀?

메모리 릭?

리소스 릭?

비효율적인 코드?

스트레스 테스트

성능 테스트 상식

정의하기 나름

성능 테스트 상식

TPS (Transaction Per Second / 초당처리량)

로드를 주는 방법?

11

ApacheBench? LoadRunner?

NHN과 같은 대규모 서버군에는 부적절…

성능 테스트 상식

무제한 로드 부여 가능 / 대규모 테스트에 적합

컨트롤러 테스트 대상 서버

로드 생성기

부하 제어

스크립트

12

분산 테스트?

성능 테스트 상식

13

성능 테스트 상식

성능 테스트 도구는

실수까지 기록하여야 한다.!

nGrinder since 2010

테스트 진행 결과 리포트

테스트 설정 스크립트 작성

상세 결과 보기

언제든 원하는 시점에 테스트 수행

테스트 준비시간 0분 / 학습시간 1~2시간?

네트워크 오버플로우 자동 처리

NHN에서만 월간 2000건 성능 테스트 실행 (10배 증가)

은근한 자부심!! (내가 10배 빠르게 만들었어)

밤샘 X 요게 중요

중간 정리

컨트 롤러

에이전트1

에이전트2

컨트롤러+에이전트

스크 립트 스크 립트

에이 전트

프로세스1

프로세스2

프로세스+쓰레드

쓰레드 1

쓰레드 2

쓰레드 3

쓰레드 4

쓰레드 1

쓰레드 2

쓰레드 3

쓰레드 4

가 상 유 저

스크 립트 스크 립트

내장 SVN

자이썬 그루비 그루비

+ 메이븐

스크립팅 - 지원언어

스크립팅 - 기본구조

프로세스당 한번

프로세스당 한번

지정한 만큼 반복

스크립팅 - 인스트루먼트

MyTest object = new MyTest(); Gtest test = new Gtest(1, “통계1”) test.record(object, “sendMessageToGoogle”)

class MyTest { public void sendMessageToGoogle() { 구글에 HTTP를 보내고, 결과 검증 } }

통계 1을 준비하라

여기까지 왔으면 테스트가 성공한거다. 통계1에 트랜잭션을 하나 올려라

그루비 + 메이븐 + 서브버전 + 이클립스

스크립트 디버깅 / 자동완성 / 의존성 관리

스크립팅 – IDE 지원

LINE 플러스 소속 개발자가 도쿄 IDC 에 있는 서버를 테스트할 경우

클러스터링

K IDC T IDC M IDC N 망 도쿄IDC

컨트롤러 컨트롤러 컨트롤러 컨트롤러 컨트롤러

에이전트 x10

에이전트 x5

NAS / DB

L4 / SSO

스크립트

서버

에이전트 x5

에이전트 x10

에이전트 x5

LINE 플러스 소속 개발자가 도쿄 IDC 에 있는 서버를 테스트할 경우

클러스터링

더미를 위한 스크립팅..

NHN에서만 620 사용자 / 11,000 테스트 / 90% 테스트 성공률

성능 테스트 활동 활성화 (10배)

비용 최소화

네트워크 오버플로우 위험성 감소

큰 사이즈의 가상 유저 시뮬레이션

마지막 정리

ngrinder

감사합니다

Recommended