首頁  >  問答  >  主體

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

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

PHP中文网PHP中文网2742 天前775

全部回覆(1)我來回復

  • 阿神

    阿神2017-04-17 12:04:40

    ulimit 是解決這個問題的正道。

    如果記憶體超了還不 kill,那該怎麼處置這個程式呢?任其繼續使用內存麼?那還限制總記憶體幹嘛~

    如果命令是自己寫的,並且只要外部通知一下就能夠回收內存,那麼可以考慮讓這個命令能夠響應某個特殊消息,比如 SIGUSR1,收到後就回收內存。然後寫一個 monitor 程序,透過 /proc/$PID 來不斷看記憶體使用,一旦超了就給它發訊息。不過看起來題主的要求是任意命令,這個方法就明顯不工作了。

    回覆
    0
  • 取消回覆