开发者社区> 问答> 正文

在linux怎么限制一个进程运行内存大小

在运行一个命令的时候可以限制其消耗内存大小,我找到一个命令ulimit,但是他如果发现进程超过最大内存的话,会kill掉。这并不是我想要的,我希望只是限制使用最大内存,但不能kill掉。

展开
收起
a123456678 2016-06-20 15:50:37 8659 0
1 条回答
写回答
取消 提交回答
  • 用 ulimit 是解决这个问题的正道。

    如果内存超了还不 kill,那么应该怎么处置这个程序呢?任其继续使用内存么?那还限制总内存干什么呢~

    如果命令是自己写的,并且只要外部通知一下就能够回收内存,那么可以考虑让这个命令能够响应某个特殊消息,比如 SIGUSR1,收到后就回收内存。然后写一个 monitor 程序,通过 /proc/$PID 来不断看内存使用,一旦超了就给它发消息。不过看起来题主的要求是任意命令,这个方法就明显不工作了。

    2019-07-17 19:44:14
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《3-Alibaba Dragonwell 在Alibaba Cloud Linux 3上的应用及优化》 立即下载
Alibaba Cloud Linux 3 技术揭秘 立即下载
Alibaba Cloud Linux 3 发布 立即下载