Did some tests today opening lots of connections from node.js to CouchDB
1.6.1. Everything went well up to approximately 1000 connections. When
we tried to open more than ~1k simultaneous connections, CouchDB replied
just fine to the first ~1k connections that were established, but it
would reply only with the HTTP headers to all subsequent requests -
there would be no content in the replies beyond the first ~1k; obviously
node.js reported error on those requests.
Here's an example of a request, and the subsequent empty reply:
###############################################################
GET
/XXXXXXXXXXXX/_design/XXXXXXXXXXXXXXX/_view/view?startkey=XXXXXXXXXXX
HTTP/1.1
content-type: application/json
accept: application/json
host: XXXXXXXXXXXXX:5984
Connection: keep-alive
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Server: CouchDB/1.6.1 (Erlang OTP/R14B04)
ETag: "XXXXXXXXXXXXXXXX"
Date: Thu, 08 Oct 2015 19:17:19 GMT
Content-Type: application/json
Cache-Control: must-revalidate
###############################################################
I'm looking for a way to make CouchDB service more than ~1k simultaneous
connections.
I believe I've raised the open file descriptors limit to a much higher
value, and also ERL_MAX_PORTS is set to 65k. What could possibly limit
the number of connections that are serviced simultaneously?
Documentation for older versions mentions the max_connections setting in
the [httpd] section, but for newer versions I can't find that setting.
Any ideas?
--
Florin Andrei
http://florin.myip.org/