工作进程的“最大打开文件数”
- 2024-11-14 08:30:00
- admin 原创
- 21
问题描述:
是否可以增加工作进程的“最大打开文件数”参数?我指的是这个参数:
cat /proc/<pid>/limits | grep files
谢谢你的建议
解决方案 1:
另一个选项是使用 prlimit 命令(来自 util-linux 包)。例如,如果您想将正在运行的进程的最大打开文件数设置为 4096:
prlimit -n4096 -p 进程的 pid
解决方案 2:
作为系统管理员:该/etc/security/limits.conf
文件在大多数 Linux 安装中控制这一点;它允许您设置每个用户的限制。您需要一行类似myuser - nofile 1000
。
在进程内:getrlimit 和 setrlimit 调用控制大多数每个进程的资源分配限制。RLIMIT_NOFILE
控制文件描述符的最大数量。您需要适当的权限才能调用它。
解决方案 3:
您可以使用 gdb,中断进程,调用上述系统调用来提高您感兴趣的限制,然后继续作业并退出 gdb。我曾多次以这种方式即时编辑内容。
您的应用程序不会关闭,但在您拨打电话时暂时冻结。如果您动作快(或者您编写了脚本!),它可能不会被注意到。
解决方案 4:
echo -n "Max open files=20:20" > /proc/$pid/limits
...适用于 RHEL5.5 和 RHEL6.7。
请注意,“-n”是强制性的;结尾的换行符将引发对无效参数的投诉。
解决方案 5:
此链接详细说明了如何在整个系统或每个用户上进行更改。
许多应用程序(例如 Oracle 数据库或 Apache Web 服务器)需要更高的此范围。因此,您可以通过在内核变量 /proc/sys/fs/file-max 中设置新值来增加最大打开文件数,如下所示(以 root 身份登录):
$ sysctl -w fs.file-max=100000
您需要编辑 /etc/sysctl.conf 文件并添加以下行,以便在重启后设置保持不变
解决方案 6:
是的,可以在/proc/<pid>/limits
运行时增加限制。只需找到 pid 并执行以下命令:
echo -n "Max open files=20:20" > /proc/$pid/limits
解决方案 7:
以下命令给出默认限制(分别为软限制和硬限制)允许的每个进程的最大打开文件数:
ulimit -Sa
ulimit -Ha
您可以使用程序或命令来更改这些限制。查看 ulimit (man ulimit)。
解决方案 8:
在 Ubuntu 16.04 上,运行 rethinkdb 进程时,这些解决方案都不起作用。
我不断得到error: accept() failed: Too many open files.
最终,我的文件中的这个方法奏效了/etc/security/limits.conf
。请注意,除了 nofile 之外,还有nproc 。据我了解,root 需要单独指定。
* soft nofile 200000
* hard nofile 1048576
root soft nofile 200000
root hard nofile 1048576
* soft nproc 200000
* hard nproc 1048576
root soft nproc 200000
root hard nproc 1048576
您可以通过运行来查看系统最大文件数cat /proc/sys/fs/file-max
。我只是将我的文件数设置为在服务器大小合理范围内的最大值。
您可以通过运行来验证您的进程允许的最大打开文件数cat /proc/{your-pid}/limits
。
有用的帖子:https://medium.com/@muhammadtriwibowo/set-permanently-ulimit-n-open-files-in-ubuntu-4d61064429a
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件