linux - 如果我更改生产服务器上的 ulimit 值,它会破坏已经在服务器上运行的现有进程吗?
问题描述
我们需要更改生产服务器上的 ulimit 值,因为当前配置的值不符合要求。但是,已经有很多 java 进程在服务器上运行,我们不想破坏它们中的任何一个。
我们可以即时更改生产服务器上的 ulimit 值吗?
这适用于 Red Hat Enterprise Linux Server 6.6 版(圣地亚哥)
解决方案
进程从其父进程继承资源限制。内置的 shellulimit
改变了 shell 自己的资源限制,从而改变了它未来 children的资源限制。更改 in 的值limits.conf
将更改未来登录 shell 的资源限制,从而更改其 children的资源限制。两者都不会改变已经运行的进程的限制。
当然,已经运行的进程可能会觉得其他进程越来越需要资源。例如,这可能会使它们更快地耗尽内存。
要获取或设置已运行进程的资源限制,较新的 linux 具有prlimit
命令。例如,要更改nproc
正在运行的进程的限制:
prlimit --pid $MY_SERVER_PID --nproc=unlimited
推荐阅读
- java - Java Swing注册表单密码弱点情况
- java - 错误:JNINativeMethod nfptr 抛出从 jobjectarray* 到 void* 的无效转换
- sql - 如何使数组从laravel中的数据库中获取数据
- android - 如何从屏幕截图 exif 数据中获取日期时间
- typescript - “null”类型的赋值推断为“any”
- c - 将 Char 与 == 和单引号进行比较会给出警告
- jsxgraph - JSXGraph:创建数据图时,“曲线”元素接受什么类型的输入?
- flutter - 为什么在删除 onTap 和 OtherCallBacks 后这个 Flutter 代码不起作用
- vue.js - 使用脚本 ('http://localhost/service-worker.js') 为范围 ('http://localhost/') 注册 ServiceWorker 失败
- java - 如何使用 jooq 获取按聚合值排序的组