Going from tens of tcp socket connections to 500 maybe more
-
Seeking advise for supporting large amounts of sockets with QT.
I have a very nice server app that uses QtCore, QNetwork and QSql, its been rock solid with say 10 to 20 simultanious tcp connections but I want to scale it up to handle ten to hundred times more. Currently each socket is writtent to using a giant for loop that iterates though the whole list of sockets. Now I heard writting to a socket is fast, but was wondering what kind of delay will be from writing a buffer to socket number one to socket number 1000 in the list. I have no way of testing this out across 1000 real simultanious connections so wanted to seek advise here.
Any advise, should I move away from Qt and go down to Linux sockets (these are tcp).
Thank you very much for any feedback
-David
-
I did remember the "c10k problem":http://www.kegel.com/c10k.html :)
Do you want to send the same packet to all sockets (broadcast)? I guess removing Qt will not solve your problem.
Maybe "QtConcurrent":http://qt-project.org/doc/qt-4.8/threads-qtconcurrent.html can help you.
-
I have done a test with such a setup. IIRC I did a stress test with up to 500 sockets to be served. The CPU gets a bit busy. But it seemed to have nothing special up to this range.
The server sends real-time data of less than one 1k per socket with an update rate of 1 Hz.