limits.conf zum Festlegen von Speichergrenzen

10

Ich möchte jeden Prozess auf die Verwendung von mehr als 500 MB RAM beschränken. AFAIK dies geschieht mit RSS in /etc/security/limits.conf, aber der Prozess namens gnome-panel verwendet anscheinend 618436 kB VmRSS. Wie kann das sein ?

/etc/security/limits.conf

* Hard RSS 512000

Benutzername @ debian: ~ $ cat / proc / 3002 / status
Name: Gnom-Panel
Zustand: S (schlafend)
Tgid: 3002
Pid: 3002
PPid: 2910
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
FDSize: 64
Gruppen: 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
Themen: 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
freiwillige_ctxt_switches: 871965
nonvoluntary_ctxt_switches: 47553
PaX: PeMRs

Benutzername @ debian: ~ $ cat / proc / 3002 / limit
Limit Soft Limit Hard Limit Units     
Maximale CPU-Zeit unbegrenzt unbegrenzt Sekunden   
Maximale Dateigröße unbegrenzt unbegrenzte Bytes     
Maximale Datengröße unbegrenzt unbegrenzte Bytes     
Maximale Stapelgröße 8388608 Unbegrenzte Bytes     
Maximale Kerndateigröße 0 0 Bytes     
Maximaler residenter Satz 524288000 524288000 Bytes     
Max verarbeitet 100 100 Prozesse 
Max. Geöffnete Dateien 1024 1024 Dateien     
Maximal gesperrter Speicher 65536 65536 Bytes     
Maximaler Adressraum unbegrenzt unbegrenzte Bytes     
Max. Dateisperren Unbegrenzt Unbegrenzte Sperren     
Max. Anstehende Signale 14001 14001 Signale   
Maximale Nachrichtengröße 819200 819200 Byte     
Max schöne Priorität 0 0                    
Maximale Echtzeitpriorität 0 0                    
Max Echtzeit Timeout unbegrenzt unbegrenzt uns
ᔕᖺᘎᕊ
quelle

Antworten:

7

limits.conf(5) Manpage sagt:

rss
  maximum resident set size (KB) (Ignored in Linux 2.4.30 and higher)
Roman Cheplyaka
quelle
Gibt es eine andere Möglichkeit, den von einem Prozess verwendeten Gesamtspeicher zu begrenzen? Ich hatte zuvor Probleme mit dem Thrashing, weil Programme zu viel Speicher belegen.
In meiner Manpage aus dem Jahr 2008 wurde eine solche Einschränkung nicht erwähnt. Was ist der richtige Wert?
@ Rupert: meins ist vom 24.08.2009. Hier ist die Online-Version: kernel.org/pub/linux/libs/pam/Linux-PAM-html/… . Ich kenne leider keine Alternative.
Roman Cheplyaka
as(Adressraumbegrenzung) sollte den Trick machen, wie @cib beschrieben. Stellen Sie es so ein, wie Sie es möchten rss.
errant.info
1

Ich kenne keine Möglichkeit, dies pro Prozess einzuschränken, aber Sie können die Gesamtgröße von RSS (und anderen) einer Gruppe von Prozessen mit dem Speicherressourcen-Controller einschränken .

kurzlebig
quelle
1

RSS-Limit in limit.conf funktioniert nicht in Kerneln> 2.4.30.

Sie müssen Cgroups verwenden

PaulDaviesC
quelle
Sie sollten auch sagen, wie man cgroups verwendet.
Cristian Ciupitu
@CristianCiupitu Ich habe einen Link zur Cgroups-Dokumentation gegeben. Ich selbst bin kein Experte für Cgroups und habe gerade erst damit begonnen, es zu lernen, damit ich die limits.conf auf meinen Servern ersetzen kann.
PaulDaviesC