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/

Reply via email to