[Mono-list] high performance Unix-based TCP socket server

hlavko mark.hlavac at gmail.com
Sat Oct 3 15:48:35 UTC 2015


Hi guys,

do you recommend the Mono for high performance Unix-based TCP socket server
with thousands of concurrent connections?

We are investigating the Mono platform for our Unix-based master server (TCP
socket server) which should be able to handle at least ~1000-5000 persistent
connections. It must run on Unix platform because our tech infrastucture is
already built on this ecosystem and ready to use. Another big benefit is
that our game client is build in Unity, so using the same technology for
client and server looks very prospective for us.

I already found and tried  high performance implementation using
SocketAsyncEventArgs
<http://www.codeproject.com/Articles/83102/C-SocketAsyncEventArgs-High-Performance-Socket-Cod>  
on Ubuntu server and the results are pretty cool. It was able to process
~4000 messages per second on 10000 connections. There is also  SocketServer
framework <https://github.com/kerryjiang/SuperSocket>   which looks quiet
interesting.

However, I am little bit sceptical about other possible drawbacks:
1. Not sure if the Mono implementation of the SocketAsyncEventArgs is fully
replacable to .NET implementation on Windows. Is it ready for production in
the current state?
2. Not sure if this is still issue with last versions but I found many hate
comments targeting Mono performance. Is Mono comparable to other high-level
languages like Java/C++/.NET in the question of performance?
3. You know it looks like there is not many people which are going this
server way with Mono. Also we want to focus primarily on business logic
rather then polish and hack core server functionality. So, is it possible to
rapidly prototype relatively stable framework around Mono or we will need to
solve many hidden secrets and issues?
4. Looks like the future of Mono is in crossplatform mobile market not
servers. (we are looking forward to next few years)
5. There is also competition which have also its pros and cons (e.g.
Java(Netty), Node.js) and is better in some aspects.

Thanks for answers.



--
View this message in context: http://mono.1490590.n4.nabble.com/high-performance-Unix-based-TCP-socket-server-tp4666679.html
Sent from the Mono - General mailing list archive at Nabble.com.


More information about the Mono-list mailing list