limits.conf para definir limites de memória

10

Eu gostaria de limitar qualquer processo de usar mais de 500 MB de RAM. AFAIK isso é feito usando RSS em /etc/security/limits.conf mas o processo chamado gnome-panel aparentemente está usando 618436 kB de VmRSS. Como isso pode ser?

/etc/security/limits.conf

*               hard    rss             512000
username@debian:~$ cat /proc/3002/status
Name: gnome-panel
State: S (sleeping)
Tgid: 3002
Pid: 3002
PPid: 2910
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
FDSize: 64
Groups: 20 24 25 29 44 46 112 116 117 1000 1002 1003 
VmPeak:   916636 kB
VmSize:   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
Threads: 1
SigQ: 0/14001
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000020001000
SigCgt: 0000000180000000
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: ffffffffffffffff
Cpus_allowed: 3
Cpus_allowed_list: 0-1
Mems_allowed: 00000000,00000001
Mems_allowed_list: 0
voluntary_ctxt_switches: 871965
nonvoluntary_ctxt_switches: 47553
PaX: PeMRs
username@debian:~$ cat /proc/3002/limits
Limit                     Soft Limit           Hard Limit           Units     
Max cpu time              unlimited            unlimited            seconds   
Max file size             unlimited            unlimited            bytes     
Max data size             unlimited            unlimited            bytes     
Max stack size            8388608              unlimited            bytes     
Max core file size        0                    0                    bytes     
Max resident set          524288000            524288000            bytes     
Max processes             100                  100                  processes 
Max open files            1024                 1024                 files     
Max locked memory         65536                65536                bytes     
Max address space         unlimited            unlimited            bytes     
Max file locks            unlimited            unlimited            locks     
Max pending signals       14001                14001                signals   
Max msgqueue size         819200               819200               bytes     
Max nice priority         0                    0                    
Max realtime priority     0                    0                    
Max realtime timeout      unlimited            unlimited            us
    
por ᔕᖺᘎᕊ 30.01.2011 / 20:15

4 respostas

10

Encontrou esta solução depois de procurar aqui: link

Para o seu exemplo:

* hard as 512000

Isso parece ser equivalente a ulimit -v 512000 , aplicado no momento em que você faz login na sua conta.

    
por 27.08.2012 / 23:49
7

limits.conf(5) página do manual diz:

rss
  maximum resident set size (KB) (Ignored in Linux 2.4.30 and higher)
    
por 30.01.2011 / 20:23
1

Eu não sei de uma maneira de limitar isso em uma base por processo, mas você pode restringir o tamanho total de RSS (e outro) de um grupo de processos com o controlador de recursos de memória .

    
por 31.01.2011 / 03:55
1

O limite de RSS no limits.conf não funciona nos kernels > 2.4.30.

Você deve usar Cgroups

    
por 09.11.2013 / 04:18

Tags