Boost logo

Boost Users :

Subject: Re: [Boost-users] [Boost.ASIO] [asio] Scaling TCP Server
From: Sebastian Messerschmidt (sebastian.messerschmidt_at_[hidden])
Date: 2015-08-11 08:57:58

> 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 =>
> and the client is given here =>
> 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?
What platform are you testing? The localhost adapter implementation
might be a limiting factor on some platforms.
Can you try to use smaller packet sizes for comparison?

Have you measured pure throughput by not handling the messages but
simply receiving them?
I would recommend to profile your code for bottlenecks, such as parsing
the strings etc.

> --
> /Sarvagya Pant
> /
> /Kathmandu, Nepal/
> /+9779803468257/
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]

Boost-users list run by williamkempf at, kalb at, bjorn.karlsson at, gregod at, wekempf at