在Linux中,您可以更改打开文件的最大数量。 您可以通过使用ulimit命令修改此号码。 它允许您控制可用于由其启动的shell或进程的资源。
另请阅读: 在设置Linux的运行进程限制每用户1级
在这个简短的教程中,我们将向您展示如何检查打开的文件和文件描述的当前限制,但为此,您需要具有root访问您的系统。
首先,让我们看看我们如何找出您的Linux系统上打开的文件描述符的最大数量。
查找Linux打开文件限制
该值存储在:
# cat /proc/sys/fs/file-max 818354
您将看到的数字显示用户每次登录会话可以打开的文件数。 结果可能因您的系统而异。
例如我的一个CentOS的服务器上限制设置为818354,而我在家里运行Ubuntu的服务器上的默认限制设置为176772。
如果要查看硬和软限制,可以使用以下命令:
在Linux中检查硬限制
# ulimit -Hn 4096
检查Linux中的软限制
# ulimit -Sn 1024
要查看不同用户的软硬值,你可以简单地用“苏”切换用户要检查这限制了用户。
例如:
# su marin $ ulimit -Sn 1024
$ ulimit -Hn 4096
如何检查Linux中的系统范围文件描述符限制
如果您正在运行服务器,则某些应用程序可能需要对打开的文件描述符设置更高的限制。 对于这样一个很好的例子是MySQL的/ MariaDB的服务或Apache Web服务器。
您可以通过编辑内核指令增加在Linux中打开的文件的限制fs.file-max
。 为了这个目的,你可以使用sysctl工具。
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
如果你是Linux管理员,我建议你对该文件非常熟悉,你可以做什么。 阅读其中的所有注释,因为它通过限制不同级别的用户/组在管理系统资源方面提供了极大的灵活性。
您应该添加的行包含以下参数:
<domain> <type> <item> <value>
这里是设置用户马林的软和硬限制的例子:
## Example hard limit for max opened files marin hard nofile 4096 ## Example soft limit for max opened files marin soft nofile 1024
最后的想法
本简要文章向您展示了如何检查和配置全局和用户级别限制的最基本的打开文件数量的基本示例。
虽然我们只是皮毛,我强烈建议你有一个更详细的研究和阅读有关的/etc/sysctl.conf和/etc/security/limits.conf文件 ,并学习如何使用它们。 他们一天会对你有很大的帮助。