Message 'Maximum number of file handles allowed for Domino is 1024'
When you launch a Domino server that runs on Linux, the following message appears on the Domino server console:
"WARNING: the maximum number of file handles (ulimit -n) allowed for Domino is 1024. See Release Notes and set the allowable maximum to 20000."
As indicated in the message, this warning occurs because you must increase the maximum file handles before you can run the Domino server. The error is more likely to occur on Linux platforms because Linux is set to 1024 by default. However, you could also encounter this error when Domino runs on Solaris or AIX if you have adjusted the file handles to a lower value.
For Linux platforms, the product Release Notes contain instructions for how to adjust this value. Refer to the following topics in the Lotus Notes/Domino Release Notes:
- Domino for Linux on x86 configuration
- Domino for Linux on zSeries configuration
For your convenience, an excerpt from the Release Notes is provide below.
Domino for Linux on x86 configuration
Increasing the per-process filehandle limit
By default, the Linux kernel limits the number of file descriptors that any one process can open; the default is 1024. This limit includes socket file descriptors that are opened during basic client/server communications, therefore is too restrictive for the Domino process. Do not assume that having fewer than 1024 databases (or files) in the Domino data directory is an indicator of the maximum number of open file descriptors that Domino will require. In order to scale above "tens" of client connections, this default must be overridden by the Linux administrator.
The mechanism for overriding the default varies depending on how the Domino server is started. There are two basic scenarios:
1. Domino is started from a login session
For this case, the default must be overridden by modifying the file /etc/security/limits.conf AND insuring it is respected by the login. Edit /etc/security/limits.conf using root and add or modify the lines:
domsrvr soft nofile 20000
domsrvr hard nofile 49152
where "domsrvr" is an example of the user id that will run the Domino server. Specify the UNIX user name in the first column that is the owner of the notesdata directory specified during Domino installation. If more than one Domino partition exists on the same Linux for zSeries platform, repeat these lines for each user id. The "soft" value specifies the new default file descriptor limit (ulimit -n), and the "hard" value specifies the maximum file descriptor limit that may be set by the user.
Note: The nofile limit recommendation has increased for Domino 8.5.x and 9.x. For details, refer to the following section of the Admin Help: (link to 9.0 topic provided below)
-> Tuning -> Improving Domino server performance -> Improving UNIX server performance
domsrvr soft nofile 60000
domsrvr hard nofile 80000
In order for these limits to be respected following logon, insure the following line is in the appropriate pam.d login file:
session required /lib/security/pam_limits.so
For example, if ssh login is used, this line must appear in /etc/pam.d/sshd
If telnet is used, this line must appear in /etc/pam.d/login
If rlogin is used, this line must appear in /etc/pam.d/rlogin
The user id must login after the above changes are made and saved.
IMPORTANT NOTE: For 64-bit systems, if the path is set to /lib/security/pam_limits.so, the admin and all users will not be able to log into the system. On a 64-bit system, you should instead perform one of the following options:
Option A: Set the path to:
session required /lib64/security/pam_limits.so
- or -
Option B: Remove the hardcoded path to allow the OS to choose the correct pam_limits.so
session required pam_limits.so
Note that if the path is incorrectly set and admin is locked out, the config can be corrected by logging in via single-user mode.
2. Domino is automatically started through /etc/init.d
Starting a Domino server automatically when Linux is booted is typically accomplished by executing a script which resides in the /etc/init.d directory (in a "runlevel") . It is worth noting, however, that /etc/security/limits.conf settings are NOT respected when Domino is automatically started by a /etc/init.d script. Therefore, a line such as the following MUST appear in the "start" section of such a script:
ulimit -n 20000
Warning: Always make /etc/security/limits.conf change ( 1. above) in addition to modification of the "start" script. Otherwise, on the occasion that Domino is started from a login session, the file descriptor limit will be inadequate.