您好,我正在尝试增加运行 Ubuntu 14.04 的虚拟专用服务器上的文件描述符。
我目前所做的:
1) 在 sysctl.conf 中提高了 fs.file-max
2)在/etc/pam.d/common-session 和 /etc/pam.d/common-session-noninteractive 中添加以下行:
session required pam_limits.so
3)在/etc/security/limits.conf中添加以下行:
* hard nofile 30000
* soft nofile 30000
root hard nofile 30000
root soft nofile 30000
不幸的是,即使重新启动后,我仍然得到与以前相同的值:
root@vps1:~# ulimit -Sn
1024
root@vps1:~# ulimit -Hn
4096
root@vps1:~# ulimit -n
1024
我查看了 /var/log/dmesg 和 /var/log/kern.log,但什么也没找到。但在 systemd-logind.log 中我发现了以下内容:
/proc/self/fd/9: 4: ulimit: error setting limit (Invalid argument)
Watching system buttons on /dev/input/event0 (Power Button)
New seat seat0.
/proc/self/fd/9: 4: ulimit: error setting limit (Invalid argument)
Watching system buttons on /dev/input/event0 (Power Button)
New seat seat0.
/proc/self/fd/9: 4: ulimit: error setting limit (Invalid argument)
Watching system buttons on /dev/input/event0 (Power Button)
New seat seat0.
pid=9 的进程似乎是“rcuos”:
root@vps1:~# ps -aux | grep rcuos
root 9 0.2 0.0 0 0 ? S 03:55 0:32 [rcuos/0]
root 18 0.1 0.0 0 0 ? S 03:55 0:20 [rcuos/1]
root 4525 0.0 0.0 8872 944 pts/0 S+ 07:54 0:00 grep --color=auto rcuos
下一步该尝试什么?
答案1
这次更改+重启修复了我们的systemd-logind
:
在文件中:
/etc/init/systemd-logind.conf
改变这个:
ulimit -S -n 16384 || true
ulimit -H -n 16384 || true
更改为:
ulimit -n 16384
答案2
问题与在 /etc/ssh/sshd_config 中禁用 PAM 有关:
UsePAM no
允许 PAM 后,一切正常。为了禁用密码并增加文件描述符限制,我现在使用:
PermitEmptyPasswords no
PasswordAuthentication no
UsePAM yes
这解决了问题!