[2017 데브데이 #4]아이펀팩토리 김진욱 CTO “게임 서버 최적화, 보다 꼼꼼한 확인이 필수”
[2017 데브데이 #4]아이펀팩토리 김진욱 CTO “게임 서버 최적화, 보다 꼼꼼한 확인이 필수”
  • 판교=변동휘 기자
  • 승인 2017.03.29 15:04
  • 댓글 0
이 기사를 공유합니다

아이펀팩토리는 3월 29일 경기도 성남 판교 엔씨소프트 R&D 센터에서 ‘2017 데브데이’ 행사를 개최했다. 이날 3번째 강연자로 나선 김진욱 CTO(최고기술경영자)는 게임 서버 성능에 영향을 주는 요소들을 탐색하고, 최적화를 위한 개선안을 마련하는 방식에 대해 강연했다.
 

 

김 CTO는 게임 서버의 성능 지표에 대해 다양한 측면이 있지만, 딱 하나의 지표로 나타낸다면 같은 수의 유저를 받았을 때의 응답 시간이라고 말했다. 이어 성능 개선의 목표로 더욱 짧은 응답 시간을 설정했다.
그의 설명에 따르면 서버의 응답시간은 서버에 쾌적하게 접속할 수 있는 유저 수를 결정한다. 이에 응답 시간을 프로그래머가 이해하기 쉽게 설정하고, 측정값을 통해 개선 방향을 이해하고, 문제 발생 시 측정하는 것이 아닌 항상 측정할 수 있도록 부하를 최소화하는 것을 강연 방향으로 삼았다.

웹에서 응답 시간을 측정하는 경우, 아파치 벤치(Apach Bench) 등의 도구를 활용해 간단히 시행할 수 있다. 웹의 경우 유저의 요청 등이 간단히 정의돼 응답시간을 정의하기 쉬우며, CPU나 메모리 사용량 제한이 없어 중앙값이나 90분위수 등을 쉽게 측정할 수 있다.
그러나 게임 서비스는 웹 서비스에 비해 상대적으로 하나의 이벤트를 정의하기 어렵다. 클라이언트에 응답을 보낸 시점 이후에도 서버가 먼저 메시지를 보내는 경우도 많다. 문제의 원인을 찾기 위해서는 클라이언트 요청과 응답 사이의 시간을 세분화할 필요가 있다. 게임 서비스의 여러 구성요소를 측정하고, 그 수치를 파악해 개선 방식을 마련하는 것이 게임 서버 최적화의 주안점이라는 것이다.
 

 

이어 그는 간단한 구조의 클라이언트를 상정하고, 각 구성요소들의 응답 시간을 탐색하는 방법에 대해 논의했다. 사용자 인증, 큐 대기 시간, 데이터베이스 및 캐시 접근 등의 상황에서 무엇으로 응답시간을 정의하고 측정해야 하는지 설명했다.
이렇게 측정한 이벤트 실행 결과는 성능 최적화의 가이드라인으로 사용된다. 실행시간이 길었던 이벤트가 있는지 탐색하고 그 원인을 찾아 개선할 수 있다는 것이다. 김 CTO는 앞서 상정했던 클라이언트에서 각 구성요소별로 발생할 수 있는 지연응답의 원인과 해결방안을 탐색했다.

김진욱 CTO는 “게임 서버는 많은 수의 실시간/비동기 이벤트를 처리하는 프로세스”라며 “언제나 데이터를 보고 느린 이벤트를 찾은 뒤, 왜 느린지 가설을 세워 검증하는 방식으로 진행하는 것이 좋다”고 말했다.


댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.