fmchan
fmchan

Reputation: 760

MongoDB available connections

I installed MongoDB on Windows, Mac and Linux. I run MongoDB with all default arguments and I enter a command db.serverStatus().connections on mongo to check the available connections.

Here is my observation, Windows 7 has 19999, Mac has only 203 and Linux has 818. Therefore, I would like to ask what makes the number of available connections different and is it possible to increase the available connections?

Upvotes: 2

Views: 6668

Answers (3)

Sanjay Bharwani
Sanjay Bharwani

Reputation: 4759

I was facing the same issue and apparently ulimit -n 6000 didn't help.

On macos we could check the setting for open files using below command which was showing 256 in my case and 80% of 256 was 204 hence the max connection by mongo was 204.

launchctl limit maxfiles

I have followed https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c to resolve my error. This explains in details how to set the values.

Follow the documentation, restart laptop and you should see the setting

Upvotes: 0

wlan0
wlan0

Reputation: 190

@fmchan Turn off SELinux and check again.

I set high NOFile and NProc limits on systemd, and in /etc/security/limits.conf file. But, it didn't help

Now, the only thing that works for me is to 1. setenforce 0 && systemctl restart mongod.service 2. Write a SELinux policy to allow mongod_exec_t to setrlimit and rlimitinh

Here's a similar issue https://bugzilla.redhat.com/show_bug.cgi?id=1415045

Upvotes: 0

Stennie
Stennie

Reputation: 65323

For UNIX-like systems (i.e. Linux and OS X), the connection limit is governed by ulimits. MongoDB will use 80% of the available file descriptors for connections, which is why you see 203 on Mac (~80% of 256) and 819 on Linux (~80% of 1024).

The MongoDB documentation includes recommended settings for production systems. Typically you wouldn't need to change this on development environments, but you will see a warning on startup if the connection limits are considered low.

In MongoDB 2.4 and earlier, there is a hard-coded maximum of 20,000 connections per server irrespective of the ulimits. This maximum has been removed as at MongoDB 2.6.

There is also a maxConns MongoDB configuration directive that can be used to limit the connections to something lower than what would be allowed by ulimits.

Upvotes: 8

Related Questions