limit.conf 設定記憶體限制

limit.conf 設定記憶體限制

我想限制任何進程使用超過 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組

相關內容