limits.conf per impostare i limiti di memoria


10

Vorrei limitare qualsiasi processo dall'utilizzo di oltre 500 MB di RAM. AFAIK questo viene fatto usando RSS in /etc/security/limits.conf ma il processo chiamato gnome-panel apparentemente sta usando 618436 kB di VmRSS. Come può essere?

/etc/security/limits.conf

* hard rss 512000

nome utente @ debian: ~ $ cat / proc / 3002 / status
Nome: gnome-panel
Stato: S (dormendo)
Tgid: 3002
Pid: 3002
PPid: 2910
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
Dimensione FDS: 64
Gruppi: 20 24 25 29 44 46 112 116 117 1000 1002 1003 
VmPeak: 916636 kB
Dimensione 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
Discussioni: 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 utente @ debian: ~ $ cat / proc / 3002 / limits
Limite Soft Limit Hard Limit Unità     
Tempo di CPU max illimitato illimitato secondi   
Dimensione massima del file byte illimitati illimitati     
Dimensione massima dei dati illimitati byte illimitati     
Dimensione massima dello stack 8388608 byte illimitati     
Dimensione massima del file core 0 0 byte     
Numero massimo di residenti 524288000 524288000 byte     
Processi massimi 100 100 processi 
Max file aperti 1024 1024 file     
Memoria bloccata massima 65536 65536 byte     
Spazio di indirizzi massimo illimitato byte illimitati     
Blocchi di file max. Blocchi illimitati illimitati     
Segnali in sospeso max 14001 Segnali 14001   
Dimensione max msgqueue 819200 819200 byte     
Massima priorità 0 0                    
Priorità max in tempo reale 0 0                    
Timeout max in tempo reale illimitato illimitato noi

Risposte:



7

limits.conf(5) la pagina man dice:

rss
  maximum resident set size (KB) (Ignored in Linux 2.4.30 and higher)

Esiste un altro modo per limitare la memoria totale utilizzata da un processo? Ho già avuto problemi con il thrashing a causa dei programmi che usano troppa memoria?

La mia pagina man risalente al 2008 non menzionava tale limitazione. Quindi qual è il valore corretto da usare?

@Rupert: il mio è datato 24/08/2009. Ecco la versione online: kernel.org/pub/linux/libs/pam/Linux-PAM-html/… . Sfortunatamente non conosco alcuna alternativa.
Roman Cheplyaka,

as(limite di spazio degli indirizzi) dovrebbe fare il trucco, come descritto da @cib. Impostalo come faresti rss.
errant.info,


1

Il limite RSS in limits.conf non funzionerà nei kernel> 2.4.30.

Devi usare Cgroups


Dovresti anche dire come usare i cgroups.
Cristian Ciupitu,

@CristianCiupitu Ho fornito un link alla documentazione di Cgroups. Io stesso non sono un esperto di Cgroups e ho appena iniziato a impararlo, in modo da poter sostituire limits.conf sui miei server.
PaulDaviesC
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.