Linux

如何限制Linux中應用程序的記憶體使用量?

  • August 14, 2021

我有一個有一些記憶體洩漏問題的閉源軟體。是否有工具或解決方案可以在不使用“ulimit”的情況下在固定數量的記憶體中“沙盒”程序(一般來說,我需要每個應用程序的記憶體控制)

在基於 systemd 的發行版上,您還可以使用 systemd-run (它間接使用 cgroups)。例如:

systemd-run --scope -p MemoryLimit=1G firefox

注意:這會要求您輸入密碼,但應用程序會以您的使用者身份啟動。不要讓這誤導您認為該命令需要與 一起執行sudo,因為這會導致該命令在 root 下執行,這幾乎不是您的意圖。

如果你不想輸入密碼*(事實上,為什麼你需要密碼來限制你已經擁有的記憶體)*,你可以使用--user選項,但是為了這個工作你需要啟用 cgroupsv2 支持,現在需要使用systemd.unified_cgroup_hierarchy核心啟動參數

引用自:https://serverfault.com/questions/118649