limit.conf untuk mengatur batas memori

10

Saya ingin membatasi proses apa pun dari penggunaan lebih dari 500 MB RAM. AFAIK ini dilakukan dengan menggunakan RSS di /etc/security/limits.conf tetapi proses yang disebut gnome-panel ternyata menggunakan VmRSS 618436 kB. Bagaimana ini bisa terjadi?

/etc/security/limits.conf

* hard rss 512000

username @ debian: ~ $ cat / proc / 3002 / status
Nama: gnome-panel
Negara: S (sedang tidur)
Tgid: 3002
Pid: 3002
PPid: 2910
TracerPid: 0
Uid: 1000 1000 1000 1000
Gid: 1000 1000 1000 1000
FDSize: 64
Grup: 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
Thread: 1
SigQ: 0/14001
SigPnd: 000000000000000000
ShdPnd: 000000000000000000
SigBlk: 000000000000000000
SigIgn: 0000000020001000
SigCgt: 0000000180000000
CapInh: 0000000000000000
CapPrm: 000000000000000000
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 / limit
Limit Soft Limit Hard Limit Unit     
Maks cpu waktu tak terbatas detik tak terbatas   
Ukuran file maks. Byte tanpa batas tak terbatas     
Ukuran data maks. Byte tak terbatas tak terbatas     
Ukuran tumpukan maksimum 8388608 byte tak terbatas     
Ukuran file inti maksimum 0 0 byte     
Penduduk maksimum mengatur 524288000 524288000 byte     
Max memproses 100 100 proses 
Maks membuka file 1024 1024 file     
Memori maks terkunci 65536 65536 byte     
Ruang alamat maks. Byte tak terbatas tak terbatas     
File maks mengunci kunci tak terbatas tak terbatas     
Maks. Sinyal tertunda 14001 sinyal 14001   
Ukuran pesan maksimum 819200 819200 byte     
Maks prioritas bagus 0 0                    
Prioritas realtime maks. 0 0                    
Batas waktu realtime maksimum tidak terbatas, tanpa batas
ᔕᖺᘎᕊ
sumber

Jawaban:

7

limits.conf(5) halaman manual mengatakan:

rss
  maximum resident set size (KB) (Ignored in Linux 2.4.30 and higher)
Roman Cheplyaka
sumber
Apakah ada cara lain untuk membatasi total memori yang digunakan oleh suatu proses? Saya punya masalah sebelumnya dengan meronta-ronta karena program menggunakan terlalu banyak memori?
Halaman manual saya tertanggal dari 2008 tidak menyebutkan batasan seperti itu. Jadi apa nilai yang benar untuk digunakan?
@Rupert: milik saya bertanggal 24/08/2009. Ini versi online: kernel.org/pub/linux/libs/pam/Linux-PAM-html/… . Sayangnya, saya tidak tahu alternatif lain.
Roman Cheplyaka
as(batas ruang alamat) harus melakukan trik, seperti yang dijelaskan @cib. Atur seperti yang Anda inginkan rss.
errant.info
1

Saya tidak tahu cara untuk membatasi ini berdasarkan per proses, tetapi Anda dapat membatasi ukuran total RSS (dan lainnya) dari sekelompok proses dengan pengontrol sumber daya memori .

singkat
sumber
1

Batas RSS dalam limit.conf tidak akan berfungsi di kernel> 2.4.30.

Anda harus menggunakan Cgroup

PaulDaviesC
sumber
Anda juga harus mengatakan bagaimana cara menggunakan cgroup.
Cristian Ciupitu
@CristianCiupitu Saya telah memberikan tautan ke dokumentasi Cgroups. Saya sendiri bukan ahli dalam Cgroup dan baru saja mulai mempelajarinya, sehingga saya bisa mengganti limit.conf di server saya.
PaulDaviesC