18

I am trying to raise the open file descriptor maximum for all users on an ubuntu machine.

I've added the following lines to /etc/security/limits.conf:

*               soft    nofile           100000
*               hard    nofile           100000

And, based on this question I've checked the /etc/pam.conf settings for pam_limits:

$ grep "pam_limits" /etc/pam.d/*
/etc/pam.d/atd:session    required   pam_limits.so
/etc/pam.d/common-session:session required pam_limits.so
/etc/pam.d/cron:session    required   pam_limits.so
/etc/pam.d/login:session    required   pam_limits.so
/etc/pam.d/sshd:session    required     pam_limits.so
/etc/pam.d/su:session    required   pam_limits.so
/etc/pam.d/sudo:session required pam_limits.so

And my file-max seems to be fine:

$ cat /proc/sys/fs/file-max 
762659

Yet I still have the default 1024 when I check ulimit -a:

$ ulimit -a | grep files
open files                      (-n) 1024

What else can I check?

bantic
  • 1,469
  • 3
  • 14
  • 17
  • Also, just as additional clarification: A `ulimit -n 100000` does work as expected (although it doesn't help me because it only persists in the current login session). – bantic Feb 15 '11 at 16:31

2 Answers2

15

I figured out that the system doesn't seem to like the wildcard for the user in limits.conf. Changing that to: root soft nofile 100000 and root hard nofile 100000 worked fine.

bantic
  • 1,469
  • 3
  • 14
  • 17
  • Must be a bug in Ubuntu. I verified that wildcards work in Fedora 14. – Mark Wagner Feb 14 '11 at 20:13
  • 15
    Wildcards work, but do not affect the root account. http://manpages.ubuntu.com/manpages/natty/en/man5/limits.conf.5.html says `NOTE: group and wildcard limits are not applied to the root user. To set a limit for the root user, this field must contain the literal username root.` – Stobor Jul 27 '11 at 05:29
0

Adding another answer as, although bantic solved his problem, we had exactly same setup and symptoms. Ulimit soft and hard for nofile set to 100000 in limits.conf. No over-rides or other ulimit settings for users under /etc or in user's home and yet ulimit was low. Hard ulimit was 4096, soft ulimit was 1024.

Centos 7.

Actually adding an /etc/security/limits.d/20-nofile.conf with soft nofile 100000 and hard nofile 100000 seemed to solve it if you su as the user but not if you ssh in as the user.

Eventually we found UsePAM: no in /etc/ssh/sshd_config Changing to UsePAM: yes and restarting sshd service solved it for us.

gaoithe
  • 183
  • 7