There has been lot of talk of Indy and it's scaling, I did small test apps to do some test of my own. I had some gut feeling from my previous life that Indy10 (http) will have quite much overhead for each call. So I made simple client and server, and measure the client round trips (Server wuill return 200OK with small string as payload and client reads it also to stream)

There has been lot of talk of Indy and it's scaling, I did small test apps to do some test of my own. I had some gut feeling from my previous life that Indy10 (http) will have quite much overhead for each call. So I made simple client and server, and measure the client round trips (Server wuill return 200OK with small string as payload and client reads it also to stream)

The results are something like this
10000 Requests [10000 OK, 0 errors]
Min :5,333ms
Max :25,209ms
Avg :15,616ms

64,00 requests / second
156,26 Elapsed time seconds

about 64 requests/s is really low, or seems like it... what kind of results could/shouls be expected with some other framework (Clien + Server)

Comments

  1. Just load the code from the link abobe, but it is very basic almost as basic and it could get. Just possible to set the ProtocolVersion/KeepAlive and  on server side possible to set  the Thread Pool.

    ReplyDelete
  2. I was pondering that is the virtual machines always that slow or is there some settings needed to be tweaked to get more out of this...

    ReplyDelete
  3. and... If you can create an small demo of socket library of your choice it would be very interesting: Measure client round trip time (And throughput of requests per second) to receive few plain text words of text from the server made with same library... 

    I think this problem has two sides :
    1. how fast will the library serve single queries
    2. how it will scale on more massive workload. (Several concurrent client requests)

    ReplyDelete

Post a Comment