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 beberapa kelas penjadwal proses di linux. Default (CFQ) pada dasarnya memberikan jumlah irisan waktu yang sama untuk setiap proses yang ingin dijalankan dan mengantre tugas yang bisa dijalankan sedemikian rupa sehingga setiap orang menunggu rata-rata jumlah waktu yang sama untuk giliran mereka. Beberapa pengecualian untuk aturan ini ada tetapi itulah ide dasarnya.
Kelas penjadwal lain adalah penjadwal waktu nyata. Realtime sedikit berbeda, tugas antrian runnable agak ke dalam skema antrian yang adil, proses realtime akan mendapatkan waktu CPU segera setelah diperlukan oleh proses, ini mengusir proses yang berjalan dari CPU untuk memberikan ruang bagi 'realtime 'proses.
Nilai apa yang bisa mereka ambil?
Apa yang 'prioritas' lakukan adalah mengubah kesenangan proses sehingga saat login proses utama Anda dimulai pada kesenangan tertentu, setiap proses anak yang Anda hasilkan juga memulai pada kesenangan yang sama.
Ini memiliki efek membuatnya lebih mungkin dijadwalkan dalam mendukung proses bersaing lainnya dan pengalaman pengguna dapat dibuat menjadi lebih responsif / interaktif untuk nilai-nilai kebaikan yang lebih rendah dan kurang responsif / interaktif jika kebaikan ditingkatkan.
Mungkin penting bagi pengguna login normal untuk memiliki prioritas lebih rendah daripada daemon yang dapat diservis misalnya, atau root untuk memiliki prioritas lebih tinggi pada login daripada yang lainnya.
Sedangkan untuk realtime, pertikaian ditangani dengan bidang 'rtprio'. Jika Anda memiliki dua tugas waktu nyata yang keduanya ingin dijalankan maka nilai 'rtprio' digunakan untuk menentukan proses mana yang akan dipilih untuk prioritas terlebih dahulu. Rtprio yang lebih tinggi menghasilkan tugas dengan prioritas lebih tinggi.
Menetapkan ini dalam batas.conf memungkinkan tugas-tugas realtime ditetapkan pada penargetan prioritas tertentu tanpa perlu root untuk menetapkan nilainya. Ini tidak berpengaruh pada tugas yang tidak diatur untuk dijalankan menggunakan penjadwal waktu nyata.
Nilai 'bagus' harus melakukan hal yang sama dengan 'rtprio' tetapi untuk penjadwalan CFQ standar. Saya belum pernah mencobanya. Ini mengatur proses awal yang muncul ketika PAM menetapkan batas-batas ini untuk vaule yang bagus, pengguna normal kemudian dapat pergi ke tingkat yang bagus atau lebih tinggi tanpa perlu root untuk mengaturnya. Jika Anda tidak mengganti nama secara eksplisit itu berarti semua proses yang dihasilkan dari shell dari login itu (misalnya) akan mewarisi nilai bagus yang ditetapkan dalam batas.conf membentuk proses induk yang awalnya dibuat.
Apa standarnya?
Batas 'default' - secara teknis semuanya diatur ke apa pid 1 kecuali ditetapkan secara eksplisit, batas sumber daya diwarisi dari proses induk, jika tidak ada batas yang telah ditentukan atau diganti di mana pun maka warisan dari init
adalah default.
Nilai Lainnya
data
maximum data size (KB)
Ketika suatu proses diinisialisasi, ia mengalokasikan sejumlah memori yang dikenal sebagai 'segmen data' ketika proses tersebut disalin ke dalam memori, di sinilah ruang bagi para global, mungkin beberapa data dan memori yang diinisialisasi lainnya dialokasikan dari tumpukan heap. Batas mengontrol jumlah alokasi maksimum yang dapat diambil suatu proses.
Tidak mungkin Anda pernah mencapai batas ini karena malloc () jarang menggunakan terlalu banyak segmen data untuk menyimpan data.
fsize
maximum filesize (KB)
Ini benar-benar hanya menetapkan ukuran maksimum file yang dapat ditulis sebagai pengguna tersebut.
memlock
maximum locked-in-memory address space (KB)
Hampir semua memori yang diperoleh aplikasi 'tergusur'. Itu bisa ditukar. Memori terkunci Memori tidak pernah dapat ditukar dan tetap ada. Nilai ini dikontrol secara ketat karena dapat disalahgunakan oleh orang-orang untuk membuat sistem memori menjadi kelaparan dan menyebabkan pertukaran. Ini biasanya berguna dengan aplikasi keamanan (yang tidak pernah ingin halaman mereka ditukar - dan menjadi dapat dibaca dari partisi swap).
cpu
maximum CPU time (minutes)
Ini mewakili jumlah total waktu proses yang dapat dikonsumsi pada CPU. Suatu proses yang melebihi nilai ini terbunuh. Perhatikan ini BUKAN sama dengan jumlah waktu yang telah berlalu sejak proses dimulai. Yaitu batas cputime 1 menit akan memakan waktu 1 menit untuk dikonsumsi jika proses memiliki utilisasi CPU 100%, tetapi 2 menit untuk dikonsumsi jika proses menggunakan utilisasi 50%.
Apa yang terjadi jika cpu terlampaui?
Proses akan dikirim sinyal mematikan SIGXCPU
yang menghentikan proses. Ini kemudian dapat ditangkap oleh proses induk dan ditangani di sana.
Hanya satu proses atau seluruh pengguna tidak menggunakan CPU?
Hampir semua batasan yang direferensikan ditangani berdasarkan per proses. Termasuk waktu CPU. Satu-satunya yang tidak saya yakini sebagai jumlah total login dan jumlah total proses oleh pengguna itu.
Beberapa gotch lainnya dengan batasan adalah:
- Max proses mencakup jumlah utas ringan.
- Batas RSS tidak melakukan apa pun dan belum selama beberapa tahun, tidak ada gunanya untuk menetapkan.