增加 FD 限制然后 SSH 不工作?

增加 FD 限制然后 SSH 不工作?

我正在使用 64 位 CentOS 6.3,在增加 FD 限制时遇到问题:更改限制后 SSH 不工作,每次我登录服务器时,输入密码后,都会出现“远程服务器关闭连接”的情况。

这是一台没有任何“救援模式”的远程服务器,因此无法进行本地登录以获取任何错误日志。在发生此问题之前,我也尝试过 ulimit -SHn,但效果不佳。

现在,每次发生此问题时我都必须恢复快照,但仍然不知道我的服务器出了什么问题。

由于我正在处理每秒处理数百万个请求的高性能服务器,因此我需要非常高的 FD 限制,这是我的配置:

/etc/security/limits.conf
* hard nofile 2000000
* soft nofile 2000000


/etc/security/limits.d/90-nproc.conf  
*          soft    nproc     1024


/etc/ssh/sshd_config
Protocol 2
SyslogFacility AUTHPRIV
PasswordAuthentication yes
ChallengeResponseAuthentication no
GSSAPIAuthentication yes
GSSAPICleanupCredentials yes
UsePAM yes
AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES
AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT
AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE
AcceptEnv XMODIFIERS
X11Forwarding yes
Subsystem       sftp    /usr/libexec/openssh/sftp-server


/etc/pam.d/sshd
auth       required     pam_sepermit.so
auth       include      password-auth
account    required     pam_nologin.so
account    include      password-auth
password   include      password-auth
session    required     pam_selinux.so close
session    required     pam_loginuid.so
session    required     pam_selinux.so open env_params
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    required     pam_limits.so   


/etc/sysctl.conf
fs.file-max = 2000000
fs.nr_open = 2000000 

答案1

2^20(大约一百万)是 Linux 支持的最大文件描述符限制(NR_OPEN)。要提高这个限制,需要进行许多更改,包括重新编译内核。这还会破坏许多依赖于较低限制的用户空间应用程序。

不过我怀疑你完全搞错了方向。请求率和所需文件描述符的数量之间没有关联。

答案2

最后我找到了一种无需修改内核源代码即可克服 2^20 限制的方法:

/etc/sysctl.conf

fs.nr_open = 10485760

修改fs.nr_open2^20以上即可解决这个问题。

此外,2^20 的限制并不是世界末日。我认识一个人已经成功构建了一个非常接近此限制的 CentOS 服务器,他的记录是1025216暂时的。如果他使用更高的内存并进行正确的配置,毫无疑问他可以轻松克服这个限制。

以下是他所做的(由中文编写,但您可以看到他的配置):

http://www.blogjava.net/yongboy/archive/2013/04/09/397559.html http://www.blogjava.net/yongboy/archive/2013/04/11/397677.html http://www.blogjava.net/yongboy/archive/2013/04/10/397631.html http://www.blogjava.net/yongboy/archive/2013/04/09/397594.html

相关内容