Browse > Article
http://dx.doi.org/10.7583/JKGS.2020.20.6.31

Improving performance of MMO game server using io_uring I/O Model  

Seong, SoYun (Dept. of Digital Entertainment, Korea Polytechnic Univ.)
Jung, NaiHoon (Dept. of Game & Multimedia Engineering, Korea Polytechnic Univ.)
Abstract
To accept more than thousands of concurrent players, MMO Game servers should use high performance I/O APIs provided by the OS. Despite the continuous improvement of the I/O models, these new I/O APIs are not applied on the applications immediately. In this study, we proposed a new MMO game server architecture using io_uring, Linux's new I/O model. We implemented the proposed architecture and achieved performance improvements of the server on a stress test benchmark with high concurrent connections.
Keywords
Massively Multiplayer Online(MMO); I/O model; io_uring; Linux; Game Server;
Citations & Related Records
연도 인용수 순위
  • Reference
1 https://man7.org/linux/man-pages/man2/select.2.html
2 https://man7.org/linux/man-pages/man2/poll.2.html
3 Gammo, L., Brecht, T., Shukla, A., Pariag, D., "Comparing and evaluating epoll, select, and poll event mechanisms", Proceedings of the Ottawa Linux Symposium, 2004.
4 https://nginx.org/en/
5 http://netty.io/
6 Zhang, Shungeng, et al. "The Impact of Event Processing Flow on Asynchronous Server Efficiency." IEEE Transactions on Parallel and Distributed Systems 31.3. 565-579. 2019.   DOI
7 git://git.kernel.dk/liburing
8 https://docs.microsoft.com/en-us/windows/win32/api/winsock/nf-winsock-wsaasyncselect
9 https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-wsaeventselect
10 https://support.microsoft.com/en-gb/help/181611/socket-overlapped-i-o-versus-blocking-nonblocking-mode
11 https://www.slideshare.net/devcatpublications/ndc2013-19986939
12 Lee, Jong. "Method for processing the data distributed at online game server and a system thereof." U.S. Patent Application No. 11/496,931.
13 Michael, Maged M., and Michael L. Scott. "Simple, fast, and practical non-blocking and blocking concurrent queue algorithms." Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing. p. 267-275. 1996.
14 Michael, Maged M. "High performance dynamic lock-free hash tables and list-based sets." Proceedings of the fourteenth annual ACM symposium on Parallel algorithms and architectures. p. 73-82. 2002.
15 Tim L. Harris. A pragmatic implementation of non-blocking linked-lists. In Proceedings of the International Conference on Distributed Computing (DISC'01). 300-314. 2001.
16 Valois, John D. "Implementing lock-free queues." Proceedings of the seventh international conference on Parallel and Distributed Computing Systems. p. 64-69. 1994.
17 http://www.brendangregg.com/perf.html
18 https://man7.org/linux/man-pages/man1/top.1.html
19 https://linux.die.net/man/8/iftop
20 MOSBERGER, David JIN, Tai. httperf-a tool for measuring web server performance. ACM SIGMETRICS Performance Evaluation Review, 26.3, p. 31-37, 1998.   DOI
21 Dong-Eun Lee, "A Study on the Free-to-Play Model for Digital Games", Korea Game Society, Vol. 15, No. 6, pp107-119, 2015.
22 Weiglhofer, Martin, and Franz Wotawa. "Asynchronous input-output conformance testing." 2009 33rd Annual IEEE International Computer Software and Applications Conference. Vol. 1. IEEE, p. 154-159. 2009.
23 Bhattacharya, Suparna, et al. "Asynchronous I/O support in Linux 2.5." Proceedings of the Linux Symposium. p. 371-386. 2003.
24 https://kernel.dk/io_uring.pdf
25 https://www.thedailyprogrammer.com/2016/09/network-programming-io-multiplexing.html
26 https://man7.org/linux/man-pages/man7/epoll.7.html
27 https://docs.microsoft.com/ko-kr/windows/win32/fileio/i-o-completion-ports?redirectedfrom=MSDN
28 https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/hh997032(v=ws.11)
29 https://docs.oracle.com/cd/E26180_01/Platform.94/ATGInstallGuide/html/s0604threadcontextswitchingproblems01.html