Linux增加了打开文件/文件描述符(FD)的最大数量
时间:2020-01-09 10:41:39 来源:igfitidea点击:
如何在CentOS Linux下增加打开文件的最大数量?
如何在Linux下打开更多文件描述符?
ulimit命令在允许进行控制的系统上,对shell程序和/或由shell程序启动的进程可用的资源进行控制。
使用以下命令显示的打开文件描述符的最大数量(以root用户身份登录)。
命令列出打开文件描述符的数量
使用以下命令命令显示打开文件描述符的最大数量:
cat /proc/sys/fs/file-max
输出:
75000
普通用户可以在单个登录会话中打开75000个文件。
要查看硬值和软值,请发出以下命令:
# ulimit -Hn # ulimit -Sn
要查看httpd或oracle用户的硬值和软值,请发出以下命令:
# su - username
在此示例中,su为oracle用户,执行:
# su - oracle $ ulimit -Hn $ ulimit -Sn
系统范围的文件描述符(FD)限制
在Linux操作系统下,可以通过/etc/sysctl.conf文件更改整个系统中同时打开的文件描述符的数量。
已达到最大文件数,如何解决此问题?
许多应用程序,例如Oracle数据库或Apache Web服务器,都需要更高的范围。
因此,可以通过如下所述在内核变量/proc/sys/fs/file-max中设置一个新值来增加打开文件的最大数量(以root用户身份登录):
# sysctl -w fs.file-max=100000
以上命令将限制限制为100000个文件。
您需要编辑/etc/sysctl.conf文件并放入以下行,以便在重新启动后该设置将保持不变:
# vi /etc/sysctl.conf
追加如下的配置指令:
fs.file-max = 100000
保存并关闭文件。
用户需要注销并重新登录以使更改生效,或者只需执行以下命令:
# sysctl -p
使用以下命令验证您的设置:
# cat /proc/sys/fs/file-max
或者
# sysctl fs.file-max
用户级别的FD限制
上面的过程设置了系统范围的文件描述符(FD)限制。
但是,您可以通过编辑/etc/security/limits.conf文件将httpd(或任何其他用户)用户限制为特定限制,执行:
# vi /etc/security/limits.conf
如下设置httpd用户的软限制和硬限制:
httpd soft nofile 4096 httpd hard nofile 10240
保存并关闭文件。
要查看限制,请执行:
# su - httpd $ ulimit -Hn $ ulimit -Sn
关于RHEL/CentOS/Fedora/Scientific Linux用户的说明
编辑/etc/pam.d/login文件并添加/修改以下行(确保获得pam_limts.so):
session required pam_limits.so
保存并关闭文件。