kāg*_*gii 37 linux process ulimit resource-management limits
我有一个长时间运行的进程,最终会达到最大打开文件限制。我知道如何在它失败后更改它,但是有没有办法从命令行更改正在运行的进程?
Sig*_*-IO 37
作为记录在这里的prlimit
命令,用的util-linux的2.21介绍可以读取和修改正在运行的进程的限制。
这是 writable 的后续/proc/<pid>/limits
,未集成到主线内核中。这个解决方案应该有效。
如果您还prlimit(1)
没有,您可以在prlimit(2)
联机帮助页中找到简约版本的代码。
Sig*_*-IO 32
在 CentOS/RHEL 上的较新内核 (2.6.32+) 上,您可以在运行时使用 /proc/<pid>/limits 更改它:
cd /proc/7671/
[root@host 7671]# cat limits | grep nice
Max nice priority 0 0
[root@host 7671]# echo -n "Max nice priority=5:6" > limits
[root@host 7671]# cat limits | grep nice
Max nice priority 5 6
Run Code Online (Sandbox Code Playgroud)
您可以尝试man ulimit
使用 -n 选项设置 ulimit,但是 mag 页面不会,大多数操作系统不允许设置此选项。
您可以使用设置系统范围的文件描述限制sysctl -w fs.file-max=N
并使更改在启动后持续存在/etc/sysctl.conf
不过,我还建议查看该过程,看看是否确实需要在给定时间打开如此多的文件,以及您是否实际上可以关闭一些文件并在该过程中提高效率。
归档时间: |
|
查看次数: |
60982 次 |
最近记录: |