如何更改 Linux 中打开文件数限制?[关闭]
- 2024-09-30 15:23:00
- admin 原创
- 85
问题描述:
运行我的应用程序时,有时会收到有关的错误too many files open
。
运行ulimit -a
报告限制为 1024。如何将限制增加到 1024 以上?
编辑ulimit -n 2048
导致权限错误。
解决方案 1:
您可以尝试执行ulimit -n 2048
。这只会重置当前 shell 的限制,并且您指定的数字不得超过硬限制
每个操作系统在配置文件中设置了不同的硬限制。例如,Solaris 上的硬打开文件限制可以在启动时从 /etc/system 设置。
set rlim_fd_max = 166384
set rlim_fd_cur = 8192
在 OS X 上,必须在 /etc/sysctl.conf 中设置相同的数据。
kern.maxfilesperproc=166384
kern.maxfiles=8192
在 Linux 下,这些设置通常位于 /etc/security/limits.conf 中。
有两种限制:
软限制只是当前强制执行的限制
硬限制标记不能通过设置软限制而超过的最大值
软限制可由任何用户设置,而硬限制只能由 root 更改。限制是进程的属性。它们是在创建子进程时继承的,因此系统范围的限制应在 init 脚本中的系统初始化期间设置,而用户限制应在用户登录期间设置,例如通过使用 pam_limits。
机器启动时通常会设置默认值。因此,即使您可以在单个 shell 中重置 ulimit,您也可能会发现它在重新启动时会重置回以前的值。如果您想更改默认值,您可能需要 grep 启动脚本以查找存在的 ulimit 命令。
解决方案 2:
如果您使用的是 Linux 并且遇到权限错误,则需要提高/etc/limits.conf
或/etc/security/limits.conf
文件中允许的限制(文件所在的位置取决于您的特定 Linux 发行版)。
例如,若要允许机器上的任何人将其打开文件的数量增加到 10000,请将以下行添加到limits.conf
文件中。
* hard nofile 10000
然后注销并重新登录您的系统,您应该能够执行以下操作:
ulimit -n 10000
没有权限错误。
解决方案 3:
1)将以下行添加到/etc/security/limits.conf
webuser hard nofile 64000
然后以 webuser 身份登录
su - webuser
2)为 webuser 编辑以下两个文件
通过运行附加.bashrc 和 .bash_profile文件
echo "ulimit -n 64000" >> .bashrc ; echo "ulimit -n 64000" >> .bash_profile
3)注销,然后重新登录并验证更改是否正确:
$ ulimit -a | grep open
open files (-n) 64000
就是这样,然后轰隆轰隆。
解决方案 4:
如果您的某些服务无法达到 ulimits 的要求,有时将适当的命令放入服务的 init-script 中会更容易。例如,当 Apache 报告
[警报](11)资源暂时不可用:apr_thread_create:无法创建工作线程
尝试输入ulimit -s unlimited
。/etc/init.d/httpd
这不需要重新启动服务器。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件