Upload
drandom
View
1.662
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
시나리오 기반 온라인 게임 서버 부하 테스트 기술 Electronics and Telecommunications Research Institute
2010. 9. 14. ETRI 콘텐츠연구본부 스마트게임연구팀 김항기
1. 서버부하테스트 기술 2. 온라인게임 QA 기술 3. 결론
INDEX
Electronics and Telecommunications Research Institute
온라인게임 서버테스트 기술
Table of Contents
서버 부하테스트 기술 (VENUS BLUE)
Electronics and Telecommunications Research Institute
ETRI 서버 부하테스트 기술
VENUS BLUE
ETRI 서버 부하테스트 기술
Electronics and Telecommunications Research Institute
온라인 게임 QA 동향
<4/53>
• 온라인 게임 개발 시 QA 테스트에 소요된 기갂 (클로즈드 베타 이후 추정)
- 월드 오브 워크래프트 : 클로즈 베타 테스트 개시 이후 10개월
- 리니지 II : 클로즈 베타 테스트 개시 이후 10개월 (개발 기갂 3녂, 28% 소요)
- 아이온 : 클로즈 베타 테스트 개시 이후 13개월 (개발 기갂 4녂, 27% 소요)
젂체 게임 개발 공정의 25% 이상을 차지하며, 게임의 품질을 좌우하는 중요한 과정임 * 헬게이트 런던의 경우, 서버 다운으로 인한 손실 금액이 170억원으로 추정
온라인 게임 상용화시 QA 테스트에 소요되는 기간
월드오브워크래프트
2005/01/18 : 상용화
2004/03/01 : 클로즈 베타
테스트기간 : 10개월
아이온
2008/11/25 : 상용화
2007/10/25 : 클로즈 베타
테스트기간 : 13개월
헬게이트 런던
2008/02/22 : 상용화
2007/07/01 : 프렌즈 테스트
테스트기간 : 8개월
리니지 II
2003/10/01 : 상용화
2002/11/30 : 클로즈 베타
테스트기간 : 10개월
온라인게임 QA 기술 (EasyQA)
Electronics and Telecommunications Research Institute
온라인게임 QA 기술
EasyQA
온라인게임 QA 기술
EasyQA
Electronics and Telecommunications Research Institute
LoadRunner(HP) • Web 서버 젂용 (패킷 캡처 및 리플레이 방식)
• 웹 서버를 대상으로 한 서버 부하테스트 툴로서 게임 로직을 고려하지 않아
가상유저간의 Interaction을 부여하기 어려움
• 웹 서버의 경우 Client와 1:1 통싞을 하나 게임 서버의 경우 Client와 1:n 통싞을 함
(웹 서버 : 동일 Input 동일 Output, 게임 서버 : 동일 Input 다른 Output)
VenusExpress(ETRI)
• 캐쥬얼 게임 젂용 (패킷 팹처 및 리플레이 방식)
• 게임방 만들기, 로그인 등 단순 액션 캡처 및 재현만 가능하여
서버의 단순 부하 테스트 기능만 가능
• 게임패킷의 분석을 통한 시나리오 기반의 패킷 재구성 등의 기능이 없어
현실성 있는 가상유저의 움직임을 만들지 못함
VenusBlue(ETRI)
• White Box Test (부하테스트용 API 임베딩 방식)
• 게임 소스 코드에 직접 임베딩 과정을 통해 구동되어지기 때문에
개발사의 공개 협조가 필요함
• 개발사가 공개 협조를 하더라도 소스코드 수정을 위해 직접적인 인력이 투입되어
작업해야 하기 때문에 서비스에 애로사항이 있음
• 커맨드 기반 그룹내 가상유저들의 획일적 제어로 가상유저간의 상호 인터랙션
구현이 불가능
기존 기술 요약
<6/53>
실제 사용자와 유사한 행동을 하는 가상 유저를 패킷 캡쳐를 통해서 생성 하고
시나리오 기반 제어 기능을 제공하는 온라인 게임 품질 검증 솔루션 개발
성능분석
네트워크
Packet 게이머2
망 시뮬레이션
게이머1
게이머3
패킷 DB 단위 행동
DB
게이머 행동 DB
행동 관계DB
Delay : 0.1초 Drop 율 : 10%
시나리오 작성 & 제어 게임 서버
분석
replay
대규모 패킷 캡쳐
패킷 캡쳐 & 분석 S/W
시나리오 기반 가상유저제어 S/W
네트워크 홖경 시뮬레이션 & 모니터링 S/W
온라인게임 QA 기술
EasyQA
Electronics and Telecommunications Research Institute
EasyQA 개요
<7/53>
온라인게임 QA 기술
EasyQA
Electronics and Telecommunications Research Institute
가상유저 행동 패턴 생성을 위한
대규모 패킷 캡처 기술 개발
500명 규모의 가상유저
생성 및 편집 기술 개발
5,000명 규모의 시나리오 기반
가상유저 제어 솔루션 개발
• 대규모 패킷 캡처 시스템
• 가상유저 패킷 DB
• 단위행동 분석기
• 가상유저 구축 도구
• 가상맵 탐색기
• 네트워크 환경 에뮬레이터
• 패킷-세션 추적기 및 패킷 관리자
• 가상유저 상태 모니터
• 가상유저 그룹 및 환경 관리자
• 시나리오 편집기 및 스케줄러
• 인터넷 시뮬레이터
• 가상맵 자동 탐색기 및 편집기
• 패킷 편집용 스크립트 인터페이스
• 패킷 편집용 스크립트 도구
• 게임 UI 스크립트 인터페이스
• 패킷 리플레이 기반 퀘스트 생성기
• 네트워크 모니터링 도구
• 게이밍 품질검증 모니터링 도구
2009~2010 2010~2011 2011~2012
패킷 DB
분석
행동 DB
편집
행동 DB
망 시뮬레이션
Delay 모니터링
시나리오1
시나리오1
네트워크
Packet 게임 서버
대규모
패킷 캡처
게이머
패킷 DB
행동 관계DB
추출
망 시뮬레이션
필터 &
추적
연구 개발 내용
<8/53>
온라인게임 QA 기술 – Easy QA 작업 흐름도
EasyQA
Electronics and Telecommunications Research Institute
패킷 캡쳐 클라이언트 서버 대규모(500)
패킷 분석 Black box White box Send,receive (샘플, plug-in coding)
단위행동분석 Packet Seq 행동유형 분석 (발생빈도분석) Packet seq diagram
가상유저제어 개별유저 그룹유저
시나리오제어 WYSWYG MACRO(Batch) Script <-Lua 패킷 정의, 문법 활용 Path기반 제어 & 실사용자 연동
네트워크에뮬 PC기반 Hub기반
모니터 ㅇLog포맷 - DB, File
분석 Client Server
리포팅 Excel Word
Map분석 Vc이용 실제 Client 이용
AI FSM
길찾기 Formation 행동유형고려
통계분석(Group) (seq분석, 빈도분석) Packet 문법
실시간 패킷 캡쳐&분석
히스토리 기반 패킷 분석
<9/53>
온라인게임 QA 기술 – Easy QA 작업 흐름도
EasyQA
Electronics and Telecommunications Research Institute
패킷 캡쳐 클라이언트 서버 대규모(500)
패킷 분석 Black box White box Send,receive (샘플, plug-in coding)
단위행동분석 Packet Seq 행동유형 분석 (발생빈도분석) Packet seq diagram
가상유저제어 개별유저 그룹유저
시나리오제어 WYSWYG MACRO(Batch) Script <-Lua 패킷 정의, 문법 활용 Path기반 제어 & 실사용자 연동
네트워크에뮬 PC기반 Hub기반
모니터 ㅇLog포맷 - DB, File
분석 Client Server
리포팅 Excel Word
Map분석 Vc이용 실제 Client 이용
AI FSM
길찾기 Formation 행동유형고려
<10/53>
온라인게임 QA 기술
Electronics and Telecommunications Research Institute
게임서버 QA테스터
패킷캡처시스템
젂짂(Pressing W)
패킷캡처
젂짂 패킷 정보 탐색
패킷 리플레이
젂짂 확인(OK)
EasyQA
기술 구현 예 – 패킷 캡처 및 분석
<11/53>
온라인게임 QA 기술 – 패킷 캡쳐 및 분석
EasyQA
초당 5만개의 대규모 패킷 캡처 기능
TCP, UDP 프로토콜, IP, 포트 값에 대한 필터링 기능
패킷 필터링 및 컬러링 기능
컬러링 기반의 패킷 분류 및 필터 시각화 기능
패킷에 대한 자료형 변홖 기능
프로토콜 문법 생성 기능
캡처된 각 패킷에 대하여 프로토콜 문법을 정의함
패킷 캡처 및 분석 시스템
<패킷 캡처 및 분석 시스템>
패킷 컬러링 및 필터링
패킷에 대한 자료형 변환
프로토콜 문법 뷰
캡처 설정
데모 보기 데모 보기
<12/53>
온라인게임 QA 기술 – 패킷 캡쳐 및 분석
패킷 자동 분류 기능
단순 거리 기반, Hierarchical, ISODATA 클러스터링에 의한 분류
패킷 분석 기본 정보 검출
패킷 갂 순서 정보 검출
패킷 내 필드 후보 검출
패킷 분석기
<패킷 분석기>
프로토콜 분류
방법 기본 필드 추출 프로토콜 순서
추출 분류된 프로토콜
프로토콜 정보
데모 보기
<13/53>
온라인게임 QA 기술 – Easy QA 작업 흐름도
EasyQA
Electronics and Telecommunications Research Institute
패킷 캡쳐 클라이언트 서버 대규모(500)
패킷 분석 Black box White box Send,receive (샘플, plug-in coding)
단위행동분석 Packet Seq 행동유형 분석 (발생빈도분석) Packet seq diagram
가상유저제어 개별유저 그룹유저
시나리오제어 WYSWYG MACRO(Batch) Script <-Lua 패킷 정의, 문법 활용 Path기반 제어 & 실사용자 연동
네트워크에뮬 PC기반 Hub기반
모니터 ㅇLog포맷 - DB, File
분석 Client Server
리포팅 Excel Word
Map분석 Vc이용 실제 Client 이용
AI FSM
길찾기 Formation 행동유형고려
통계분석(Group) (seq분석, 빈도분석) Packet 문법
실시간 패킷 캡쳐&분석
히스토리 기반 패킷 분석
<14/53>
온라인게임 QA 기술
Electronics and Telecommunications Research Institute
게임서버 QA테스터 패킷캡처시스템
무한 블랭크 맵 게임 플레이(탐험) 블랭크 맵 업데이트
패킷캡처
위치정보 획득
약초밭
몬스터
마을
사망지점
월드정보 동기화
맵 기호 부여
EasyQA
기술 구현 예 – 게임월드 탐험
<15/53>
가상클라이언트
온라인게임 QA 기술
Electronics and Telecommunications Research Institute
이동
공격
로그인
거래
DB화
패킷 생성 관리
가상유저 관리
지형 정보
게임 상태
게임서버
게임월드에 실체화 (출처 : Blade & Soul, NCSoft)
EasyQA
기술 구현 예 – 가상유저 생성
<16/53>
온라인게임 QA 기술 – 가상유저 제어 시스템
Electronics and Telecommunications Research Institute
EasyQA
Height맵 기반 가상맵 디스플레이
• 탐색된 지형은 밝게 탐색되지 않은 지형은 어둡게 표현
게임 맵 텍스쳐 변경 기능
• 5장의 텍스쳐를 사용하여 지형 텍스쳐 편집 => 맵의 가독성 높임
• 브러쉬 크기를 변경하여 다양한 크기의 텍스쳐 편집 가능
게임 객체(실유저, 가상유저, 몬스터)의 위치 표시
• 실유저, 가상유저 몬스트 등 게임 객체의 위치를 3차원으로 표시
• 게임 객체의 위치 변화를 실시간 추적
가상맵 네비게이션
• 가상맵의 줌인/아웃 지원
• 가상맵의 좌우 이동 지원
< Height 맵 기반 가상맵> < 맵 텍스쳐 변경> < 게임 객체 표시>
< 가상맵 탐색기>
가상유저 그룹
단일 가상유저
실유저
몬스터
가상 맵 탐색기
데모 보기
<17/53>
온라인게임 QA 기술 – 가상유저 제어 시스템
Electronics and Telecommunications Research Institute
개요
게임 클라이얶트 없이 게임의 짂행을 제어하는 시스템
특징 및 기능
GUI 기반의 편리한 가상유저의 제어
IOCP를 홗용하여 네트워크 부하 최소화 : 500명 이상의 가상유저 생성 가능
게임 객체의 움직임을 가시화 하여 젂체 게임의 상태 파악이 용이
데모 보기
가상 유저 제어 시스템
<18/53>
온라인게임 QA 기술 – Easy QA 작업 흐름도
EasyQA
Electronics and Telecommunications Research Institute
패킷 캡쳐 클라이언트 서버 대규모(500)
패킷 분석 Black box White box Send,receive (샘플, plug-in coding)
단위행동분석 Packet Seq 행동유형 분석 (발생빈도분석) Packet seq diagram
가상유저제어 개별유저 그룹유저
시나리오제어 WYSWYG MACRO(Batch) Script <-Lua 패킷 정의, 문법 활용 Path기반 제어 & 실사용자 연동
네트워크에뮬 PC기반 Hub기반
모니터 ㅇLog포맷 - DB, File
분석 Client Server
리포팅 Excel Word
Map분석 Vc이용 실제 Client 이용
AI FSM
길찾기 Formation 행동유형고려
통계분석(Group) (seq분석, 빈도분석) Packet 문법
실시간 패킷 캡쳐&분석
히스토리 기반 패킷 분석
<19/53>
온라인게임 QA 기술 – 시나리오 기반 가상유저 제어 시스템
Electronics and Telecommunications Research Institute
EasyQA
시나리오 작성
A
B
C
D E
• 모듞 가상유저들은 A,B,C,D,E 지점을 통과하여 MocKBa에 도착한다
• A 지점에 가상유저를 100명 생성(젂사 30, 사제 20, 마법사 30, 사냥꾼 20)
(네트워크 정의: Delay 0.05초, 패킷 Drop 율 : 10%)
• B 지점에서 일반 몹 사냥 100마리
• C 지점에서 정예 몹 사냥 20마리
• D 지점 주위에서 몹을 사냥하면서 나사못 100개 줍기
• E 지점에서 퀘스트 NPC와 대화
• MocKBa 에 도착
<20/53>
온라인게임 QA 기술 – 시나리오 기반 가상유저 제어 시스템
Electronics and Telecommunications Research Institute
EasyQA
Input 단위 행동 Map정보
시나리오 기반 위치 기반(시간 기반) 실게이머 지원 기능 (사냥지원-Heal,거래지원) 가상유저 포메이션선택기능 캐쥬얼 게임 시나리오 - 단위 행동의 나열 - 구간 반복 시나리오 예-> 장르별 샘플
1. Item구입 2. 무기 수리 3. 스킬 획득
장비 장착
몹 사냥
채집
시나리오 미리보기
AI 길찾기 (개인,그룹) FSM 사용자 행동특성
데모 보기
시나리오 기반 가상유저 제어 시스템
<21/53>
온라인게임 QA 기술 – Easy QA 작업 흐름도
EasyQA
Electronics and Telecommunications Research Institute
패킷 캡쳐 클라이언트 서버 대규모(500)
패킷 분석 Black box White box Send,receive (샘플, plug-in coding)
단위행동분석 Packet Seq 행동유형 분석 (발생빈도분석) Packet seq diagram
가상유저제어 개별유저 그룹유저
시나리오제어 WYSWYG MACRO(Batch) Script <-Lua 패킷 정의, 문법 활용 Path기반 제어 & 실사용자 연동
네트워크에뮬 PC기반 Hub기반
모니터 ㅇLog포맷 - DB, File
분석 Client Server
리포팅 Excel Word
Map분석 Vc이용 실제 Client 이용
AI FSM
길찾기 Formation 행동유형고려
통계분석(Group) (seq분석, 빈도분석) Packet 문법
실시간 패킷 캡쳐&분석
히스토리 기반 패킷 분석
<22/53>
온라인게임 QA 기술 – 네트워크 홖경 에뮬레이션 시스템
Electronics and Telecommunications Research Institute
EasyQA
네트워크 환경 에뮬레이션 통합 UI 시스템
네트워크 토폴로지 구성
네트워크 홖경 설정
네트워크 홖경 에뮬레이션 코어 제어
네트워크 환경 측정 프로그램
네트워크 환경 에뮬레이션 시스템
< 네트워크 환경 에뮬레이션 통합 UI 시스템 > < 네트워크 환경 측정 프로그램 >
링크 속성
네트워크 토폴로지
에뮬레이션 코어 접속리스트
네트워크 환경 측정 결과
데모 보기
<23/53>
온라인게임 QA 기술 – Easy QA 작업 흐름도
EasyQA
Electronics and Telecommunications Research Institute
패킷 캡쳐 클라이언트 서버 대규모(500)
패킷 분석 Black box White box Send,receive (샘플, plug-in coding)
단위행동분석 Packet Seq 행동유형 분석 (발생빈도분석) Packet seq diagram
가상유저제어 개별유저 그룹유저
시나리오제어 WYSWYG MACRO(Batch) Script <-Lua 패킷 정의, 문법 활용 Path기반 제어 & 실사용자 연동
네트워크에뮬 PC기반 Hub기반
모니터 ㅇLog포맷 - DB, File
분석 Client Server
리포팅 Excel Word
Map분석 Vc이용 실제 Client 이용
AI FSM
길찾기 Formation 행동유형고려
통계분석(Group) (seq분석, 빈도분석) Packet 문법
실시간 패킷 캡쳐&분석
히스토리 기반 패킷 분석
<24/53>
온라인게임 QA 기술 – 시스템 모니터링 및 분석기
Electronics and Telecommunications Research Institute
EasyQA
Monitor & Analysis - Client(가상유저) . Debug, 효율성 검정 - Server & 실유저 – 실상황 모니터링 -요소 . CPU 점유율 . Bandwidth . memory . Response time . Ping time -각 System별 -각 action별 -각 시나리오별
QA 시스템 모니터링 - 가상유저 시스템 모니터링
실시스템 모니터링 - 서버: DB(Transaction단위) - 클라이얶트 - 네트워크단
운영 모니터링 -시나리오 -단위 액션
출력 파일
.csv (Excel Format)
<25/53>
온라인게임 QA 기술 – 게임 클라이얶트/서버 배치구조 예
Electronics and Telecommunications Research Institute
EasyQA
Game Client 1
Game Client 2
Game Client N
Player 1
Player 2
Player N
Game Server
(Chatting)
Game Server (Login)
Game Server
(In Game 1)
…
Game Server
(In Game 2)
Game Server
(In Game N)
…
<26/53>
온라인게임 QA 기술 – 패킷 캡쳐/분석 및 가상맵 분석 시스템
Electronics and Telecommunications Research Institute
EasyQA
Game Client 1
Game Client 2
Game Client N
Tester 1
Tester 2
Tester N
Game Server
(Chatting)
Game Server (Login)
Game Server
(In Game 1)
…
Game Server
(In Game 2)
Game Server
(In Game N)
…
Client용 패킷캡쳐 시스템
Client용 패킷캡쳐 시스템
Client용 패킷캡쳐 시스템
Server용 패킷캡쳐 시스템
Server 용 패킷캡쳐 시스템
Server 용 패킷캡쳐 시스템
Server용 패킷캡쳐 시스템
Server용 패킷캡쳐 시스템
<27/53>
온라인게임 QA 기술 – 패킷 캡쳐/분석 및 가상맵 분석 시스템
Electronics and Telecommunications Research Institute
EasyQA
Game Server
(Chatting)
Game Server
(In Game 1)
Game Server
(In Game 2)
Game Server
(In Game N)
…
Server용 패킷캡쳐 시스템
Server용 패킷캡쳐 시스템
Server용 패킷캡쳐 시스템
Server용 패킷캡쳐 시스템
Game Client 2
Game Client N
Tester 2
Tester N
…
Client용 패킷캡쳐 시스템
Client용 패킷캡쳐 시스템
Game Client 1 Tester
1
Client용 패킷캡쳐 시스템
Client용 패킷분석 시스템
(실시갂 가능)
가상맵 분석 시스템
Server용 패킷분석 시스템
패킷리플레이 기반
상황재현 시스템
Game Server (Login)
Server용 패킷캡쳐 시스템
<28/53>
온라인게임 QA 기술 – 가상유저 제어 및 모니터링 구조
Electronics and Telecommunications Research Institute
EasyQA
Virtual Agent 1
(VU:1~m)
Virtual Agent 2 (VU:m+1~2m)
Virtual Agent N
(VU:n(m-1)+1~nm)
Game Server
(Chatting)
Game Server (Login)
Game Server
(In Game 1)
…
Game Server
(In Game 2)
Game Server
(In Game N)
…
Tester N
Real Game Client
EasyQa Studio
Agent Monitor
Agent Monitor
Agent Monitor
Client Monitor Server
Monitor
Server Monitor
Server Monitor
Server Monitor
Server Monitor
Network Emulator
Network Emulator
Network Emulator
<29/53>
온라인게임 QA 기술 – 콘텐츠 적용 사례
Electronics and Telecommunications Research Institute
EasyQA
대규모 가상 유저 생성 및 제어
IOCP를 사용하여 300명 이상의 가상 유저 제어 지원
액션 기반 가상 유저 제어 지원
로긴, 월드 접속, 이동, 채팅, 공격 등의 다양한 액션 지원
실제 유저, 가상 유저, 몬스터의 3D 화면 상 가시화 기능 지원
가상 유저, 몬스터의 상태 관리 및 상태 가시화
3D 화면 네비게이션 기능 지원
가상 유저 제어 시스템-엘마 시범 콘텐츠
< > < >
데모 보기
<30/53>
온라인게임 QA 기술 – 콘텐츠 적용 사례
Electronics and Telecommunications Research Institute
EasyQA
가상 유저 제어 시스템- 슈퍼다다다
게임 화면 가상유저제어기
가상유저 실유저
데모 보기
가상 유저 제어 시스템의 캐쥬얼 게임 적용
TCP & UDP 통신 관리 기능
TCP 통신 : 밸런싱, 로긴, 룸 서버
UDP 통신: 룸서버
액션 기반 가상 유저 제어 지원
로긴, 로비, 방생성, 방입장, 채팅 등의 다양한 액션 지원
<31/53>
온라인게임 QA 기술
Electronics and Telecommunications Research Institute
EasyQA
결과물의 활용 형태 예시
■ QA 팀원 1인이 수백~수천명의 가상유저를 제어하며 QA 테스트
오늘은 50인 인던을 갈까~ 공성젂을 해볼까? 아니면 B팀원과 100:100 하자고 해볼까?
WOW 폐인의 로망? (출처 : dual-boxing.com)
다수 가상유저 제어
<32/53>
온라인게임 QA 기술
Electronics and Telecommunications Research Institute
EasyQA
결과물의 활용 형태 예시
■ 미리 작성된 시나리오에 따른 무한 반복 테스트
오늘 저녁 약속있는데 어떻하지? 어쩔 수 없이 가상유저 애들한테 시켜야겠군. 나 올 때까지 이 시나리오 100회 반복해~! 시나리오 기반 테스트
(출처 : 디스이즈게임, 에이카온라인 공성젂)
시나리오 기반 반복 테스트
가상유저군 – 네~! 다녀오삼
<33/53>
결 론
Electronics and Telecommunications Research Institute
온라인게임 서버테스트 기술
결 론
Electronics and Telecommunications Research Institute
결론
결 론
■ 향후 개발 예정
- 실 클라이얶트 자동 제어를 통한 가상맵 탐색
- 자동 길찾기, 인공지능에 의한 가상유저 제어
- 통합 UI
■ 여러 개발사의 도움을 구합니다!
- 다양한 콘텐츠 적용을 통한 완성도 제고
- QA 젂문가의 요구사항 반영
■ ETRI HD게임연구팀은 열려있습니다!
- 요구사항 도출을 위한 위원회
- 젂문가 초빙을 통한 고견 청취
■ HD게임연구팀 박창준
E-mail : [email protected]
<35/53>