In the past few weeks I've been busy integrating Elasticsearch into an existing website. Due to PHP version limitations I have to use Elastic 5.6. I'm using the PHP library to connect to Elastic and send requests. The Elastic deployment I'm using is an Elastic Cloud hosted deployment.
The first couple of days everything went well in production, but after a few days sometimes an exception shows up:
Exception: Elasticsearch\Common\Exceptions\NoNodesAvailableException. According to my log this randomly happens with some requests. Most of the requests are handled fine, but some not.
I tried to connect to the same cloud server from my development environment, and it appears that when I send a lot of autocomplete requests in a short time, the cloud server 'hangs' for about 10 seconds and then the PHP library returns the exception. This happens on normal autocomplete typing behavior: when I'm typing a sentence like "The quick brown fox jum.." sometimes the requests gets a timeout after about the 20th character.
Another test: I created a blank page and inserted just a simple query to Elastic. When I refresh that blank page several times in a row (say 20 times) the same thing happens:
Is there some kind of rate limiting active? Indexing 100k+ documents doesn't seem to be a problem though.
The cloud deployment (high i/o) has average memory pressure of about 60%. Kopf shows N/A at load average and 0,0% CPU usage, 56% heap usage 1% disk usage.
Doe anyone know why sometimes the request times out? I'm planning on using Elastic on a website that handles about 10 reqs/s to Elastic, will this be problematic? For now there are only a few requests/hour.
Another thing: I've created a new deployment @ AWS (the old one is @ Google Cloud), and so far no errors appear. Maybe this was the culprit? My webserver is located in Amsterdam, the AWS server in Frankfurt and the GC server in Belgium.