더북(TheBook)

그림 10-37은 이를 표현한 것입니다.

p440

▲ 그림 10-37 DB에 레코드를 추가하는 시간에서 디스크 I/O는 큰 비중을 차지

 

DB에 쌓인 데이터에서 통계 정보를 추출할 때는 더 심각합니다. 데이터베이스에서 로그 분석을 수행하는 동안 DB는 굉장히 오랜 시간(10분)이 소요됩니다. 이 시간 동안 데이터베이스 부하는 최고조를 유지하기 때문에, 이 시간 동안 데이터베이스에 로그를 기록하는 시간은 평소보다 많이 느립니다. DB에 게임 플레이어 정보가 있는 경우, 게임 서버가 DB에 플레이어 정보를 읽거나 쓸 때 평소보다 많이 느려집니다. 따라서 로그를 담는 DB에 순간적으로 디스크 I/O가 많이 발생합니다. 또 DB를 액세스하는 프로그램 모듈(ODBC 또는 ADO) 자체가 연산량이 많으므로, DB에 로그 쌓기 질의를 수행하는 로그 서버는 따로 두면 좋습니다. 즉, 게임 서버와 로그 DB 서버는 분산해야 합니다.

p441

▲ 그림 10-38 게임 서버와 로그 서버 분리

 

게임 서버에서 로그를 쌓을 일이 있으면, 로그 서버에 로그를 기록하라고 지시합니다.

로그 서버는 로그 DB에 로그를 쌓는 질의 구문을 실행합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.