我想限制任何進程使用超過 500 MB 的 RAM。據我所知,這是使用 /etc/security/limits.conf 中的 RSS 完成的,但名為 gnome-panel 的進程顯然正在使用 618436 kB 的 VmRSS。怎麼會這樣 ?
/etc/security/limits.conf *硬RSS 512000
使用者名稱@debian:~$ cat /proc/3002/status 名稱: gnome面板 狀態:S(睡眠) tgid:3002 編號:3002 PPID:2910 追蹤器 ID: 0 用戶ID: 1000 1000 1000 1000 行號: 1000 1000 1000 1000 FDS尺寸:64 組: 20 24 25 29 44 46 112 116 117 1000 1002 1003 虛擬機器峰值:916636 kB 虛擬機器大小:916636 kB VmLck:0 kB VmHWM:618436 kB VmRSS:618436 kB 虛擬機器資料:601972 kB 虛擬機器:104 kB 虛擬機器執行程序:516 kB 虛擬機器庫:29232 kB VmPTE:1760 kB 線程:1 訊號Q:0/14001 簽名號:0000000000000000 電話號碼:0000000000000000 訊號塊:0000000000000000 簽名:0000000020001000 訊號號:0000000180000000 資本: 0000000000000000 上限:0000000000000000 資本效率:0000000000000000 帽帶:ffffffffffffffff 允許的CPU:3 CPU_allowed_list:0-1 Mems_allowed: 00000000,00000001 記憶體允許列表:0 volunteer_ctxt_switches:871965 非自願_ctxt_開關:47553 PaX:PeMR
使用者名稱@debian:~$ cat /proc/3002/limits 限制 軟限制 硬限制 單位 最大 CPU 時間 無限 無限秒 最大檔案大小 無限 無限位元組 最大資料大小 無限 無限位元組 最大堆疊大小 8388608 無限位元組 最大核心檔案大小 0 0 位元組 最大駐留集 524288000 524288000 位元組 最大進程數 100 100 個進程 最大開啟文件數 1024 1024 個文件 最大鎖定記憶體 65536 65536 位元組 最大位址空間 無限 無限位元組 最大檔案鎖定數 無限 無限鎖定 最大待處理訊號 14001 14001 個訊號 最大訊息佇列大小 819200 819200 位元組 最大優先權 0 0 最大即時優先權 0 0 最大即時超時 無限制 無限制 us
答案1
查看這裡後找到了這個解決方案:http://shortrecipes.blogspot.de/2009/04/limitsconf-virtual-memory-limit.html
對於你的例子:
* hard as 512000
這似乎相當於ulimit -v 512000
您登入帳戶時應用的。
答案2
limits.conf(5)
手冊頁說:
rss
maximum resident set size (KB) (Ignored in Linux 2.4.30 and higher)
答案3
我不知道有什麼方法可以在每個進程的基礎上限制這一點,但是您可以使用以下命令限制一組進程的總 RSS(和其他)大小:記憶體資源控制器。
答案4
limit.conf 中的 RSS 限制在核心 > 2.4.30 中不起作用。
你必須使用C組