|
Boost Users : |
Subject: [Boost-users] [Boost.ASIO] [asio] Scaling TCP Server
From: Sarvagya Pant (sarvagya.pant_at_[hidden])
Date: 2015-08-11 08:27:43
I have created a TCP server that can receive two types of message from
client.
1. "Heartbeat" : If this is found and "first_fetch" is 1, send some config
in Json format else send {"config_changed" : "true"}
2. "Message" : If this is found, send {"success" : "true"}
The async server is here =>
https://gist.github.com/mesarvagya/a73f2428417cb10336ef
and the client is given here =>
https://gist.github.com/mesarvagya/90d764c749d18d9c5184
While both works fine, but the server is slower than expected. If one sees,
I have used ~3kb message in client. When the client and server are
connected, I did a preliminary benchmarking and the result were as follows:
1. For 50K messages, the time was 6 seconds.
2. For 100K messages, the time was 11 seconds.
3. For 200K messages, the time was 36 seconds.
3. For 500K messages, the time was 82 seconds
3. For 1million messages, the time was 174 seconds.
The server is not working as expected. Currently it works at ~6K
message/seconds in localhost. I would like to optimize the current server
to receive at-least 100K messages per second. How should I begin with
optimizing the server code? Is it possible to receive such high
message/seconds in boost.ASIO and if so, how should I approach with the
server design?
-- *Sarvagya Pant* *Kathmandu, Nepal* *+9779803468257*
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net