Linux
如何限制Linux中應用程序的記憶體使用量?
我有一個有一些記憶體洩漏問題的閉源軟體。是否有工具或解決方案可以在不使用“ulimit”的情況下在固定數量的記憶體中“沙盒”程序(一般來說,我需要每個應用程序的記憶體控制)
在基於 systemd 的發行版上,您還可以使用 systemd-run (它間接使用 cgroups)。例如:
systemd-run --scope -p MemoryLimit=1G firefox
注意:這會要求您輸入密碼,但應用程序會以您的使用者身份啟動。不要讓這誤導您認為該命令需要與 一起執行
sudo
,因為這會導致該命令在 root 下執行,這幾乎不是您的意圖。如果你不想輸入密碼*(事實上,為什麼你需要密碼來限制你已經擁有的記憶體)*,你可以使用
--user
選項,但是為了這個工作你需要啟用 cgroupsv2 支持,現在需要使用systemd.unified_cgroup_hierarchy
核心啟動參數。