GNU/Linux >> Belajar Linux >  >> Linux

Penjelasan Linux /etc/security/limit.conf

rtprio 
maximum realtime priority allowed for non-privileged processes (Linux 2.6.12 and higher) 

priority 
the priority to run user process with (negative values boost process priority) 

Mengapa ini berbeda?

Ada berbagai kelas penjadwal proses di linux. Yang default (CFQ) pada dasarnya memberikan jumlah irisan waktu yang sama untuk setiap proses yang ingin dijalankan dan mengantri tugas yang dapat dijalankan sedemikian rupa sehingga setiap orang menunggu rata-rata jumlah waktu yang sama untuk giliran mereka. Ada beberapa pengecualian untuk aturan ini, tetapi itulah ide dasarnya.

Kelas penjadwal lainnya adalah penjadwal waktu nyata. Waktu nyata sedikit berbeda, agak mengantri tugas yang dapat dijalankan ke dalam skema antrian yang adil, proses waktu nyata akan mendapatkan waktu CPU segera setelah dibutuhkan oleh proses, ini mengeluarkan proses yang sedang berjalan dari CPU untuk memberi ruang bagi ' waktu nyata ' proses.

Nilai apa yang dapat mereka ambil?

Apa yang 'prioritas' lakukan adalah mengubah kebaikan proses sehingga saat login, proses utama Anda dimulai dengan kebaikan tertentu, setiap proses anak yang Anda hasilkan juga dimulai dengan kebaikan yang sama.

Ini memiliki efek membuatnya lebih mungkin dijadwalkan untuk mendukung proses lain yang bersaing dan pengalaman pengguna dapat dibuat menjadi lebih responsif/interaktif untuk nilai kebaikan yang lebih rendah dan kurang responsif/interaktif jika kebaikan dinaikkan.

Mungkin penting bagi pengguna login normal untuk memiliki prioritas lebih rendah daripada daemon yang dapat diservis misalnya, atau root untuk memiliki prioritas lebih tinggi saat login daripada yang lainnya.

Sedangkan untuk realtime, contention ditangani dengan field 'rtprio'. Jika Anda memiliki dua tugas waktu nyata yang ingin dijalankan, maka nilai 'rtprio' digunakan untuk menentukan proses mana yang akan dipilih sebagai prioritas terlebih dahulu. Rtprio yang lebih tinggi menghasilkan tugas dengan prioritas lebih tinggi.

Menyetel ini di limit.conf memungkinkan tugas waktu nyata disetel pada pita prioritas tertentu tanpa perlu root untuk menyetel nilainya. Ini tidak berpengaruh pada tugas yang tidak disetel untuk dijalankan menggunakan penjadwal waktu nyata.

Nilai 'bagus' harus melakukan hal yang sama seperti 'rtprio' tetapi untuk penjadwalan CFQ standar. Padahal saya belum pernah mencobanya. Ini menyetel proses awal yang muncul saat PAM menyetel batas ini ke nilai bagus itu, pengguna normal kemudian dapat naik ke level bagus itu atau lebih tinggi tanpa perlu root untuk menyetelnya. Jika Anda tidak membatalkannya secara eksplisit, itu berarti semua proses yang dihasilkan dari shell dari login tersebut (misalnya) akan mewarisi nilai bagus yang ditetapkan di limit.conf dari proses induk yang awalnya dibuat.

Apa defaultnya?

Batas 'default' - secara teknis semuanya disetel ke pid 1 kecuali ditetapkan secara eksplisit, batas sumber daya diwarisi dari proses induk, jika tidak ada batasan yang telah ditentukan atau diganti di mana pun maka warisan dari init adalah defaultnya.

Nilai Lain

data 
maximum data size (KB) 

Saat proses diinisialisasi, ia mengalokasikan beberapa memori yang dikenal sebagai 'segmen data' saat proses disalin ke dalam memori, di sinilah ruang untuk global, mungkin beberapa data dan memori yang diinisialisasi lainnya yang dialokasikan dari heap hidup. Batas mengontrol jumlah alokasi maksimum yang dapat diambil oleh suatu proses.

Kecil kemungkinan Anda akan mencapai batas ini karena malloc() jarang menggunakan segmen data secara berlebihan untuk menyimpan data.

fsize 
maximum filesize (KB) 

Ini secara harfiah hanya menetapkan ukuran maksimum file yang dapat ditulis dengan pengguna tersebut.

memlock 
maximum locked-in-memory address space (KB) 

Hampir semua memori yang diperoleh aplikasi dapat 'diusir'. Itu bisa ditukar. Memori terkunci memori tidak pernah dapat ditukar dan tetap ada. Nilai ini dikontrol dengan ketat karena dapat disalahgunakan oleh orang-orang untuk membuat sistem memori kelaparan dan menyebabkan pertukaran. Ini biasanya berguna dengan aplikasi keamanan (yang tidak pernah ingin halamannya ditukar -- dan dapat dibaca dari partisi swap).

cpu 
maximum CPU time (minutes) 

Ini mewakili jumlah total waktu yang dapat dikonsumsi suatu proses pada CPU. Proses yang melebihi nilai ini akan dimatikan. Catatan ini TIDAK sama dengan jumlah waktu yang telah berlalu sejak proses dimulai. I.E batas waktu cpu 1 menit akan memakan waktu 1 menit untuk dikonsumsi jika proses memiliki penggunaan cpu 100%, tetapi 2 menit untuk dikonsumsi jika proses menggunakan pemanfaatan 50%.

Apa yang terjadi jika cpu terlampaui?

Proses akan mengirimkan sinyal mati SIGXCPU yang mengakhiri proses. Ini kemudian dapat ditangkap oleh proses induk dan ditangani di sana.

Hanya satu proses atau seluruh pengguna yang dilarang menggunakan CPU?

Hampir semua batasan yang dirujuk ditangani berdasarkan per-proses. Termasuk waktu CPU. Satu-satunya yang bukan Saya percaya jumlah total login dan jumlah total proses oleh pengguna tersebut.

Beberapa gotch lain dengan batasan adalah:

  • Proses maksimum mencakup jumlah utas ringan.
  • Batas RSS tidak melakukan apa-apa dan tidak memilikinya selama beberapa tahun, tidak ada gunanya untuk disetel.

Linux
  1. Linux – Bagaimana Cara Menonaktifkan Ctrl-alt-del Dan /etc/init/control-alt-del.conf Di Linux?

  2. Linux – Menggabungkan /usr/bin Dan /usr/sbin Ke /bin (gnu/linux)?

  3. Memahami file /etc/xinetd.conf di Linux

  1. Memahami file /etc/security/limits.conf

  2. Contoh file /etc/mke2fs.conf

  3. Kapan saya harus menggunakan /dev/shm/ dan kapan saya harus menggunakan /tmp/?

  1. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  2. Di file /etc/hosts/ saya di Linux/OSX, bagaimana cara melakukan subdomain wildcard?

  3. Perbedaan antara /etc/hosts dan /etc/resolv.conf