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

27
nGrinder 초딩도 하는 성능 테스트

Upload: naver-d2

Post on 29-Nov-2014

9.767 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

nGrinder 초딩도 하는 성능 테스트

Page 2: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

WHO AM I

30만 라인(±) / 1년

nGrinder 프로젝트 리드

디자이너 출신

윤준호 / 내년 不惑

Page 3: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

개발자는 창조하는 사람

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

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

Page 4: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

이 모든 것이 핑계꺼리..

Page 5: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

Affordance (행위 유발성)

Page 6: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

불편함은 없애고

자랑꺼리가 될 수 있다면?

Page 7: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

7

성능 테스트?

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

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

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

성능 테스트 상식

Page 8: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

8

0

500

1000

1500

2000

2500

1 2 5 10 50 100 200

Apache

Nginx

Nginx-caching

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

초당 처리량

로드 테스트

성능 테스트 상식

Page 9: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

부적절한 커넥션 풀?

불충분한 쓰레드 풀?

메모리 릭?

리소스 릭?

비효율적인 코드?

스트레스 테스트

성능 테스트 상식

Page 10: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

정의하기 나름

성능 테스트 상식

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

Page 11: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

로드를 주는 방법?

11

ApacheBench? LoadRunner?

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

성능 테스트 상식

Page 12: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

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

컨트롤러 테스트 대상 서버

로드 생성기

부하 제어

스크립트

12

분산 테스트?

성능 테스트 상식

Page 13: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

13

성능 테스트 상식

성능 테스트 도구는

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

Page 14: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

nGrinder since 2010

Page 15: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

테스트 진행 결과 리포트

테스트 설정 스크립트 작성

상세 결과 보기

Page 16: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

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

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

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

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

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

밤샘 X 요게 중요

중간 정리

Page 17: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

컨트 롤러

에이전트1

에이전트2

컨트롤러+에이전트

스크 립트 스크 립트

Page 18: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

에이 전트

프로세스1

프로세스2

프로세스+쓰레드

쓰레드 1

쓰레드 2

쓰레드 3

쓰레드 4

쓰레드 1

쓰레드 2

쓰레드 3

쓰레드 4

가 상 유 저

스크 립트 스크 립트

Page 19: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

내장 SVN

자이썬 그루비 그루비

+ 메이븐

스크립팅 - 지원언어

Page 20: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

스크립팅 - 기본구조

프로세스당 한번

프로세스당 한번

지정한 만큼 반복

Page 21: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

스크립팅 - 인스트루먼트

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

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

통계 1을 준비하라

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

Page 22: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

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

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

스크립팅 – IDE 지원

Page 23: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

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

클러스터링

Page 24: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

K IDC T IDC M IDC N 망 도쿄IDC

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

에이전트 x10

에이전트 x5

NAS / DB

L4 / SSO

스크립트

서버

에이전트 x5

에이전트 x10

에이전트 x5

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

클러스터링

Page 25: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

더미를 위한 스크립팅..

Page 26: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

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

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

비용 최소화

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

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

마지막 정리

Page 27: [Hello world 오픈세미나]n grinder helloworld발표자료_저작권free

ngrinder

감사합니다