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 no /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

nome de usuário @ debian: ~ $ cat / proc / 3002 / status
Nome: gnome-panel
Estado: S (adormecido)
Tgid: 3002
Pid: 3002
PPid: 2910
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
Tamanho: 64
Grupos: 20 24 25 29 44 46 112 116 117 1000 1002 1003 
VmPeak: 916636 kB
Tamanho: 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
Tópicos: 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

nome de usuário @ debian: ~ $ cat / proc / 3002 / limits
Limitar unidades de limite rígido de limite suave     
Tempo máximo da CPU ilimitado e ilimitado em segundos   
Tamanho máximo do arquivo bytes ilimitados ilimitados     
Tamanho máximo dos dados, bytes ilimitados ilimitados     
Tamanho máximo da pilha 8388608 bytes ilimitados     
Tamanho máximo do arquivo principal 0 0 bytes     
Conjunto máximo de residentes 524288000 524288000 bytes     
Max processos 100 100 processos 
Máximo de arquivos abertos 1024 1024 arquivos     
Memória máxima bloqueada 65536 65536 bytes     
Espaço de endereçamento máximo, ilimitado e ilimitado de bytes     
Bloqueios máximos de arquivos ilimitados bloqueios ilimitados     
Sinais pendentes máximos 14001 14001 sinais   
Tamanho máximo da fila de mensagens 819200 819200 bytes     
Prioridade máxima máxima 0 0                    
Prioridade máxima em tempo real 0 0                    
Tempo limite máximo em tempo real ilimitado ilimitado nos
ᔕᖺᘎᕊ
fonte

Respostas:

7

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

rss
  maximum resident set size (KB) (Ignored in Linux 2.4.30 and higher)
Roman Cheplyaka
fonte
Existe alguma outra maneira de limitar a memória total usada por um processo? Eu já tive problemas com o thrashing antes por causa de programas usando muita memória?
Minha página do manual de 2008 não mencionou essa limitação. Então, qual é o valor correto a ser usado?
@Rupert: o meu é datado de 24/08/2009. Aqui está a versão online: kernel.org/pub/linux/libs/pam/Linux-PAM-html/… . Infelizmente, não conheço nenhuma alternativa.
Roman Cheplyaka
as(limite de espaço de endereço) deve fazer o truque, como @cib descrito. Defina como faria rss.
errant.info
1

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

Você deve usar Cgroups

PaulDaviesC
fonte
Você também deve dizer como usar o cgroups.
Cristian Ciupitu
@CristianCiupitu Dei um link para a documentação do Cgroups. Eu próprio não sou especialista em Cgroups e apenas comecei a aprendê-lo, para que eu pudesse substituir o limits.conf nos meus servidores.
precisa saber é o seguinte