limits.conf para establecer límites de memoria

10

Me gustaría limitar cualquier proceso de usar más de 500 MB de RAM. AFAIK esto se hace usando RSS en /etc/security/limits.conf pero el proceso llamado gnome-panel aparentemente está usando 618436 kB de VmRSS. Cómo puede ser esto ?

/etc/security/limits.conf

* hard rss 512000

username @ debian: ~ $ cat / proc / 3002 / status
Nombre: gnome-panel
Estado: S (durmiendo)
Tgid: 3002
Pid: 3002
PPid: 2910
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
FDSize: 64
Grupos: 20 24 25 29 44 46112116117 1000 10002 1003 
Pico Vm: 916636 kB
Tamaño de 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
Hilos: 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
volunte_ctxt_switches: 871965
nonvoluntary_ctxt_switches: 47553
PaX: PeMRs

username @ debian: ~ $ cat / proc / 3002 / limits
Límite Límite suave Unidades de límite duro     
Tiempo máximo de CPU ilimitado ilimitado segundos   
Tamaño máximo de archivo ilimitado bytes ilimitados     
Tamaño máximo de datos ilimitados bytes ilimitados     
Tamaño máximo de pila 8388608 bytes ilimitados     
Tamaño máximo del archivo central 0 0 bytes     
Conjunto residente máximo 524288000 524288000 bytes     
Max procesos 100100 procesos 
Max archivos abiertos 1024 1024 archivos     
Memoria máxima bloqueada 65536 65536 bytes     
Máximo espacio de direcciones ilimitado ilimitado bytes     
Bloqueo máximo de archivos bloqueos ilimitados ilimitados     
Máx. Señales pendientes 14001 14001 señales   
Tamaño máximo de msgqueue 819200 819200 bytes     
Máxima prioridad agradable 0 0                    
Máxima prioridad en tiempo real 0 0                    
Tiempo de espera máximo en tiempo real ilimitado ilimitado nosotros
ᔕᖺᘎᕊ
fuente

Respuestas:

7

limits.conf(5) La página man dice:

rss
  maximum resident set size (KB) (Ignored in Linux 2.4.30 and higher)
Roman Cheplyaka
fuente
¿Hay alguna otra forma de limitar la memoria total utilizada por un proceso? ¿He tenido problemas antes con la paliza debido a que los programas usan demasiada memoria?
Mi página de manual fechada en 2008 no mencionó tal limitación. Entonces, ¿cuál es el valor correcto para usar?
@Rupert: el mío tiene fecha 24/08/2009. Aquí está la versión en línea: kernel.org/pub/linux/libs/pam/Linux-PAM-html/… . No conozco ninguna alternativa, desafortunadamente.
Roman Cheplyaka
as(límite de espacio de direcciones) debería hacer el truco, como lo describió @cib. Póngalo como lo haría rss.
errant.info
1

El límite de RSS en limits.conf no funcionará en núcleos> 2.4.30.

Debes usar Cgroups

PaulDaviesC
fuente
También debe decir cómo usar cgroups.
Cristian Ciupitu el
@CristianCiupitu He proporcionado un enlace a la documentación de Cgroups. Yo mismo no soy un experto en Cgroups y acabo de comenzar a aprenderlo, para poder reemplazar limit.conf en mis servidores.
PaulDaviesC