我想限制任何进程使用超过 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