limits.conf 设置内存限制

limits.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-panel
状态:S(睡眠)
主题编号: 3002
进程ID:3002
PPid: 2910
TracerPid:0
id:1000 1000 1000 1000
群组编号:1000 1000 1000 1000
FDSize:64
组数:20 24 25 29 44 46 112 116 117 1000 1002 1003
峰值:916636 kB
虚拟机大小:916636 kB
虚拟机:0 kB
大小:618436 kB
VmRSS:618436 kB
虚拟数据:601972 kB
虚拟机Stk:104 kB
虚拟机Exe:516 kB
虚拟机库:29232 kB
虚拟PTE:1760 kB
主题:1
信号质量:0/14001
信号编号:00000000000000000
ShdPnd:00000000000000000
信号块:00000000000000000
信号:0000000020001000
信号Cgt:0000000180000000
资本要求:00000000000000000
上限参数:00000000000000000
上限效果:00000000000000000
上限:ffffffffffffffff
CPU_允许: 3
Cpus_allowed_list:0-1
Mems_allowed:00000000,00000001
Mems_allowed_list: 0
自愿切换:871965
nonvoluntary_ctxt_switches: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                    
最大实时超时 无限制 无限制 我们

答案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 大小,但你可以使用以下命令限制一组进程的 RSS 大小(和其他大小):内存资源控制器

答案4

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

您必须使用Cgroups

相关内容