DOI QR코드

DOI QR Code

Performance Improvement of MMO Gameservers Using RIO and HTM

RIO와 HTM을 이용한 MMO 게임서버의 성능 개선

  • Kang, Subin (Dept. of Digital Entertainment, Korea Polytechnic Univ.) ;
  • Jung, NaiHoon (Dept. of Game & Multimedia Engineering, Korea Polytechnic Univ.)
  • 강수빈 (한국산업기술대학교 디지털엔터테인먼트학과) ;
  • 정내훈 (한국산업기술대학교 게임공학부)
  • Received : 2020.09.20
  • Accepted : 2020.11.05
  • Published : 2020.12.20

Abstract

RIO is a new network API for Windows that is designed to have high I/O performance through low overhead and latency. Using RIO, MMO game servers may have much performance benefits. In addition, HTM has better productivity and performance compared to existing synchronization methods, so adopting it may produce better performance, also. In this paper, we improved server performance by implementing a new MMO game server architecture optimized with RIO and HTM. The performance of the server was verified through a benchmark program, and the number of concurrent users increased by 19%.

RIO는 윈도우의 최신 네트워크 API로 낮은 부하와 지연을 통해 높은 IO 성능을 발휘하도록 설계되었으며. 고성능의 네트워크 IO를 요구하는 대규모 동시접속(MMO) 게임 서버에 적합할 것으로 기대된다. 또한 HTM은 기존의 멀티스레드 동기화 방식보다 생산성과 성능이 우수하여 MMO 게임 서버에 적용 시 성능향상이 예상된다. 본 논문에서는 MMO 게임 서버에 RIO를 적용함과 동시에 RIO의 성능을 최대한 끌어내도록 구조를 개선하고, 기존의 시야 처리 알고리즘을 HTM 방식으로 변경하여 서버의 성능을 향상시켰다. 결과적으로 동시 접속자 수를 19%가량 증가시켰으며, 벤치마킹 프로그램을 사용하여 이를 검증하였다.

Keywords

References

  1. Hyun-jik Bae. "Game Server Programming Textbook", Gilbut. 2019.
  2. Microsoft. "Registered Input/Output (RIO) API Extensions". https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windowsserver-2012-r2-and-2012/hh997032(v=ws.11)
  3. Intel. "Intel® 64 and IA-32 Architectures Software Developer's Manual". Chap.16 Intel TSX Recommendations
  4. Microsoft. "I/O Completion Ports". https://docs.microsoft.com/en-us/windows/win32/fileio/i-o-completion-ports
  5. Sung-Ik Kim, "Lockless 게임서버 설계와 구현", NDC2012, 2012
  6. KiNam KIM, Hye-Young Kim. "A study on gaming server Implementation as IOCP model applying load balance scheme in MMORPG." Korean Institute of Information Technology, Proceedings of KIIT Conference 2019.6 pp.612-615. 2019
  7. Youngsik Kim, "A study of optimal spatial partition size and field of view in massively multiplayer online game server". International Journal of Applied Engineering Research. 12. pp.8174-8178. 2017.
  8. Kim Y., Kim KN. "Design and Evaluation of a MMO Game Server". Software Engineering Research, Management and Applications (SERA 2018). Studies in Computational Intelligence, vol 789. Springer, Cham. 2019.
  9. Takuya Nakaike, Rei Odaira, Matthew Gaudet, Maged M. Michael, and Hisanobu Tomari. "Quantitative comparison of hardware transactional memory for Blue Gene/Q, zEnterprise EC12, Intel Core, and POWER8." SIGARCH Comput. Archit. News 43, 3S. pp. 144-157. June 2015.
  10. Marios Kardaras, Dimitrios Siakavaras, Konstantinos Nikas, Georgios Goumas, Nectarios Koziris. "Fast Con-current Skip Lists with HTM", Intl Symposium on High-Level Parallel Programming and Applications (HLPP). 2018.
  11. Glazer Joshua L, Madhav Sanjay, "Multiplayer Game Programming", Gilbut, 2017
  12. Tae-hyun Lim. "MMO 서버 개발 포스트 모템", NDC2012, 2012
  13. Heung-sub Lee, "[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2", NDC2016, 2016
  14. M. Herlihy and N. Shavit. "The Art of Multiprocessor Programming revised edition" Morgan Kaufmann Publishers Inc. 2012.
  15. Microsoft. "Scatter/Gather I/O". https://docs.microsoft.com/en-us/windows/win32/winsock/scatter-gather-i-o-2