在这个简短的教程中,向你展示如何检查当前打开文件和文件描述符的限制,为了这样做,你需要有root权限访问系统。
首先,看看如何在Linux系统上找到打开的文件描述符的最大数量。
查找Linux打开文件限制
值存储在:# cat /proc/sys/fs/file-max
818354
你看到的数字,显示了用户可以在每次登录会话打开的文件数量,
例如在CentOS服务器上,限制被设置为818354,而在Ubuntu服务器上,默认限制被设置为176772.
如果要查看硬限制和软限制,可以使用以下命令:
在Linux中检查硬限制# ulimit -Hn
4096
检查Linux中的软限制# ulimit -Sn
1024
要查看不同用户的硬设置值和软设置值,只需用"su"切换到用户。# su marin
$ ulimit -Sn
1024$ ulimit -Hn
4096
在Linux,如何检查系统范围内的文件描述符限制
如果运行的是服务器,某些应用程序对打开文件描述符输入有更高的要求,比如MySQL/MariaDB服务或apache web服务器。
通过编辑内核指令fs.file-max,可以增加Linux中打开文件的限制,
Sysctl用于在运行时配置内核参数。
例如要将打开的文件限制增加到500000,可以使用以下命令:# sysctl -w fs.file-max=500000
可以使用以下命令检查打开文件的当前值:$ cat /proc/sys/fs/file-max
使用上面的命令,所做的更改将只保持活动状态,直到下次重新启动,如果要永久应用它们,必须编辑以下文件:# vi /etc/sysctl.conf
添加以下行:fs.file-max=500000
当然,你可以根据需要更改数字,要再次验证更改,请使用:# cat /proc/sys/fs/file-max
用户需要注销,并再次登录才能使更改生效,如果要立即应用限制,可以使用以下命令:# sysctl -p
在Linux中设置用户级打开文件限制
上面的示例展示了如何设置全局限制,但你可能希望对每个用户应用限制,为此,作为root用户编辑以下文件:# vi /etc/security/limits.conf
应该添加的行采用以下参数:
以下是为用户Marin设置软和硬限制的示例:## Example hard limit for max opened files
marin hard nofile 4096
## Example soft limit for max opened files
marin soft nofile 1024
小结
本文向你展示了一个基本示例,这个示例演示了如何检查和配置全局和用户级的最大打开文件数限制。