Inconsistent data transfer performance from ES -> Client

Hello

We are very happy with our internal search performance within ES it self. However, transferring the data from ES to our client seems to perform rather inconsistent. I would be very happy to hear your suggestions as to how we can make this perform more consistent, or how I can better troubleshoot as to where by bottleneck appears.

Information:

  • Every search is executed in 14-20ms based on the 'took' data from ES.
  • Very limited amount of data is transferred from ES to Client
  • Requests are made with GET/CURL timed using the 'time' command on a centos box

Inconsistent data transfers timings:

  • Request 1: real 0m0.149s
    *** Request 2: real 0m0.027s**
  • Request 3: real 0m0.150s
  • Request 4: real 0m0.148s
    *** Request 5: real 0m0.026s**
  • Request 6: real 0m0.150s
    *** Request 7: real 0m0.026s**
    *** Request 8: real 0m0.026s**
  • Request 9: real 0m0.152s

Any ideas / suggestions? :slight_smile:

Is your elasticsearch on the same LAN?

No do not believe it is. It is a hosted environment run by ObjectRocket (ES) / Rackspace (CentOS).

So a network latency issue?

Good suggestion, but it does not appear to be the actual issue we seeing. However, I think it led me on the right path :slight_smile: :slight_smile:

Added some additional timing data to my curl request based on your latency suggestion:
https://blog.josephscott.org/2011/10/14/timing-details-with-curl/

It seems like our issue may be with our DNS / namelookup:
time_namelookup: 0.125

Great you found it...

BTW did you look at the official cloud.elastic.co offer?