too many open files

本文介绍如何在Linux系统中调整文件句柄限制,包括通过sysctl.conf设置系统级最大可打开文件数,以及通过limits.conf配置每个用户的最大打开文件数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.         root用户登录,用cat /proc/sys/fs/file-max查看文件系统最大可打开文件数

a)         如果设置过小,如:

8192

修改文件/etc/sysctl.conf的变量到合适的值。 这样会在每次重启之后生效,编辑文件/etc/sysctl.conf,插入下行:

fs.file-max = 8192

其中,我的设置是65536(有人建议说应该设置成200000,当然,设置的越大系统就越慢了,选择你合适的最好)

b)         如果设置过大,下一步。

2.         查看每个用户允许打开的最大文件数 ,用如下命令:

ulimit –a

a)         发现系统默认的是open files (-n) 1024,问题就出现在这里,可能过下了,我测试我的应用程序超过这个值就报“too many open files”;

c)         /etc/security/limits.conf文件中设置最大打开文件数,下面是一行提示:

#<domain>  <type>  <item>  <value>

d)         添加如下这行:

* - nofile 2048

e)         这行设置了每个用户的默认打开文件数为2048。注意"nofile"项有两个可能的限制措施。就是<type>项下的hardsoft。要使修改过得最大打开文件数生效,必须对这两种限制进行设定。 如果使用"-"字符设定<type>, hardsoft设定会同时被设定。硬限制表明soft限制中所能设定的最大值。 soft限制指的是当前系统生效的设置值。 hard限制值可以被普通用户降低。但是不能增加。 soft限制不能设置的比hard限制更高。 只有root用户才能够增加hard限制值。当增加文件限制描述,可以简单的把当前值双倍。 例子如下, 如果你要提高默认值1024 最好提高到2048 如果还要继续增加, 就需要设置成4096

f)          Too many open files

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值