i need your help in solving this
this is the result of my ulimit -a
on my linux server
core file size (blocks, -c) 0
schedu
It seems MongoDB has no limit on incoming connections and you should modify system-wide limit, see official doc:
Unless constrained by system-wide limits, MongoDB has no limit on incoming connections. On Unix-based systems, you can modify system limits using the
ulimit
command, or by editing your system’s/etc/sysctl
file. See UNIX ulimit Settings for more information.
Recommended ulimit Settings(offical doc):
-f (file size): unlimited
-t (cpu time): unlimited
-v (virtual memory): unlimited
-n (open files): 64000
-m (memory size): unlimited
-u (processes/threads): 64000
Remember to restart your mongod
and mongos
instances after changing the ulimit settings to ensure that the changes take effect.
Source: number-of-connections recommended-ulimit-settings
Have you tried:
--maxConns arg max number of simultaneous connections
(Source: mongod documentation)
You also need bump up the number of file descriptors and number of file descriptors per process that the Linux kernel allows.
In Linux, this should be configured by editing the file at /proc/sys/fs/file-max
or by the sysctl
utility.
/etc/sysctl.conf
file and add fs.file-max = 50000
. This sets the maximum file descriptors that can run as a system-wide limit.ulimit -n 50000
sets the user-wide limit for the maximum number of file descriptors open.Check this link for a more descriptive write-up for editing the limits on a linux machine: http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/
Method 1 If you use systemd (systemctl restart mongod)
sudo mkdir /etc/systemd/system/mongod.service.d/
sudo vi /etc/systemd/system/mongod.service.d/limits.conf
then add:
[Service]
LimitFSIZE=infinity
LimitCPU=infinity
LimitAS=infinity
LimitMEMLOCK=infinity
LimitNOFILE=64000
LimitNPROC=64000
Then execute:
systemctl daemon-reload
systemctl restart mongod
Method 2 If NO systemd (service mongod restart)
sudo vi /etc/security/limits.d/99-mongodb.conf
Add something like:
* - nproc 64000
* - nofile 64000
* - fsize unlimited
* - cpu unlimited
* - memlock unlimited
* - as unlimited
* - rss unlimited
Note that * it's a wildcard. But you could use a specific user or group. Then restart session and mongod.
You might need to change the hard limits in /etc/limits.conf
or /etc/security/limits.conf
depending on your distribution.