limits.conf设置内存限制


10

我想限制使用500 MB以上RAM的任何进程。AFAIK这是使用/etc/security/limits.conf中的RSS来完成的,但是称为gnome-panel的过程显然是使用618436 kB的VmRSS。怎么会这样 ?

/etc/security/limits.conf

*硬RSS 512000

username @ debian:〜$ cat / proc / 3002 / status
名称:gnome-panel
状态:S(睡眠中)
Tgid:3002
点数:3002
编号:2910
示踪剂:0
Uid:1000 1000 1000 1000
吉德:1000 1000 1000 1000
FD尺寸:64
群组:20 24 25 29 44 46 112 116 117 1000 1002 1003 
VmPeak:916636 kB
Vm大小:916636 kB
VmLck:0 kB
VmHWM:618436 kB
VmRSS:618436 kB
VmData:601972 kB
VmStk:104 kB
VmExe:516 kB
VmLib:29232 kB
VmPTE:1760 kB
线程数:1
信号量:0/14001
签名:0000000000000000
ShdPnd:0000000000000000
信号量:0000000000000000
签名:0000000020001000
签名:0000000180000000
上限:0000000000000000
CapPrm:0000000000000000
CapEff:0000000000000000
CapBnd:ffffffffffffffff
Cpus_allowed:3
Cpus_allowed_list:0-1
允许的内存:00000000,00000001
Mems_allowed_list:0
manual_ctxt_switches:871965
nonvoluntary_ctxt_switches:47553
PaX:PeMR

username @ debian:〜$ cat / proc / 3002 / limits
极限软极限硬极限单位     
最大CPU时间无限无限秒   
最大文件大小无限制无限制字节     
最大数据大小无限制无限制字节     
最大堆栈大小8388608无限字节     
最大核心文件大小0 0字节     
最大常驻集524288000 524288000字节     
最多进程100100个进程 
最大打开文件1024 1024个文件     
最大锁定内存65536 65536字节     
最大地址空间无限制无限制字节     
最大文件锁无限制无限制锁     
最大待处理信号14001 14001信号   
最大msgqueue大小819200 819200字节     
最高优先级0 0                    
最大实时优先级0 0                    
最大实时超时无限制无限制

Answers:



7

limits.conf(5) 手册页说:

rss
  maximum resident set size (KB) (Ignored in Linux 2.4.30 and higher)

还有其他方法可以限制进程使用的总内存吗?由于程序使用了太多的内存,我之前遇到过问题吗?

我在2008年的手册页中没有提到这种限制。那么正确使用的值是多少?

@鲁珀特:我的日期为2009年8月24日。这是在线版本:kernel.org/pub/linux/libs/pam/Linux-PAM-html/…。不幸的是,我没有其他选择。
Roman Cheplyaka

as(地址空间限制)应该可以解决问题,如@cib所述。随心所欲地设置它rss
errant.info 2013年


1

RSS.limits.conf中的限制在内核> 2.4.30中不起作用。

您必须使用Cgroups


您还应该说出如何使用cgroups。
Cristian Ciupitu

@CristianCiupitu我已链接到Cgroups文档。我本人不是Cgroup的专家,并且刚刚开始学习它,因此我可以替换服务器上的limits.conf。
PaulDaviesC
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.