Cara Menetapkan Keutamaan Proses Linux Menggunakan Perintah Nice dan Renice
- 4245
- 178
- Dave Kreiger V
Dalam artikel ini, kami akan menerangkan secara ringkas Penjadual Kernel (juga dikenali sebagai Penjadual Proses), dan Keutamaan proses, yang merupakan topik di luar skop panduan ini. Kemudian kami akan menyelam sedikit pengurusan proses Linux: lihat cara menjalankan program atau perintah dengan keutamaan yang diubah suai dan juga mengubah keutamaan proses linux.
Baca juga: Cara Memantau Proses Linux Dan Menetapkan Had Proses Secara Secara Pengguna
Memahami Penjadual Kernel Linux
Penjadual kernel adalah unit kernel yang menentukan proses yang paling sesuai daripada semua proses yang boleh dilaksanakan untuk dilaksanakan seterusnya; Ia memperuntukkan masa pemproses antara proses yang boleh dijalankan pada sistem. Proses Runnable adalah satu yang hanya menunggu untuk masa CPU, sudah siap untuk dilaksanakan.
Penjadual membentuk teras multitasking di Linux, menggunakan algoritma penjadualan berasaskan keutamaan untuk memilih antara proses runnable dalam sistem. Ia berpangkat proses berdasarkan yang paling layak dan keperluan untuk masa CPU.
Memahami Keutamaan Proses dan Nilai yang Baik
Kernel menyimpan banyak maklumat mengenai proses termasuk keutamaan proses yang hanya menjadi keutamaan penjadualan yang dilampirkan pada proses. Proses dengan keutamaan yang lebih tinggi akan dilaksanakan sebelum mereka yang mempunyai keutamaan yang lebih rendah, sementara proses dengan keutamaan yang sama dijadualkan satu selepas seterusnya, berulang kali.
Terdapat sejumlah 140 Keutamaan dan dua julat keutamaan yang berbeza yang dilaksanakan di Linux. Yang pertama adalah nilai yang bagus (kesakitan) yang berkisar dari -20
(nilai keutamaan tertinggi) ke 19
(nilai keutamaan terendah) dan lalai adalah 0
, Inilah yang akan kita dapati dalam panduan ini. Yang lain adalah keutamaan masa nyata, yang berkisar 1 ke 99 Secara lalai, maka 100 ke 139 dimaksudkan untuk ruang pengguna.
Satu ciri penting Linux adalah penjadualan berasaskan keutamaan yang dinamik, yang membolehkan nilai proses yang baik akan diubah (meningkat atau menurun) bergantung pada keperluan anda, seperti yang akan kita lihat di kemudian hari.
Cara memeriksa nilai proses linux yang bagus
Untuk melihat nilai -nilai proses yang bagus, kita boleh menggunakan utiliti seperti PS, atas atau htop.
Untuk melihat proses nilai yang bagus dengan arahan PS dalam format yang ditentukan pengguna (di sini Ni
lajur menunjukkan ketelitian proses).
$ ps -eo pid, ppid, ni, commLihat Linux memproses nilai yang bagus
Sebagai alternatif, anda boleh menggunakan utiliti atas atau htop untuk melihat proses linux nilai yang bagus seperti yang ditunjukkan.
$ teratas $ htopSemak Proses Linux Nilai bagus menggunakan arahan atas Semak Proses Linux Nilai bagus menggunakan arahan htop
Perbezaan antara PR atau PRI dan NI
Daripada Atas dan htop output di atas, anda akan melihat bahawa terdapat lajur yang dipanggil Pr
dan Pri
secara penerimaan yang menunjukkan keutamaan proses.
Oleh itu, ini bermakna:
Ni
- adalah nilai yang bagus, yang merupakan konsep ruang pengguna, sementaraPr
atauPri
- adalah keutamaan sebenar proses, seperti yang dilihat oleh kernel Linux.
Cara mengira nilai PR atau PRI
Jumlah keutamaan = 140 Julat Keutamaan Masa Sebenar (PR atau PRI): 0 hingga 99 Ruang Keutamaan Ruang Pengguna: 100 hingga 139
Julat nilai yang bagus (NI): -20 hingga 19
PR = 20 + Ni PR = 20 + (-20 hingga + 19) PR = 20 + -20 hingga 20 + 19 PR = 0 hingga 39 yang sama dengan 100 hingga 139.
Tetapi jika anda melihat a rt
Daripada bilangan seperti yang ditunjukkan dalam tangkapan skrin di bawah, ia pada dasarnya bermakna proses berjalan di bawah keutamaan penjadualan masa nyata.
Cara menjalankan arahan dengan nilai yang baik di linux
Di sini, kita akan melihat cara mengutamakan penggunaan CPU program atau arahan. Sekiranya anda mempunyai program atau tugas yang sangat intensif CPU, tetapi anda juga memahami bahawa ia mungkin mengambil masa yang lama untuk diselesaikan, anda boleh menetapkannya sebagai keutamaan yang tinggi atau menggalakkan menggunakan Perintah yang bagus.
Sintaks adalah seperti berikut:
$ Nice -n niceness-value [command args] atau $ nice -niceness-value [command args] #ia mengelirukan untuk nilai negatif atau $ nice-adjustment = niceness-value [command args]
Penting:
- Sekiranya tiada nilai disediakan, set bagus menjadi keutamaan 10 secara lalai.
- Perintah atau program dijalankan tanpa kegagalan yang baik kepada keutamaan sifar.
- Hanya akar yang dapat menjalankan arahan atau program dengan keutamaan yang meningkat atau tinggi.
- Pengguna biasa hanya boleh menjalankan arahan atau program dengan keutamaan yang rendah.
Contohnya, bukannya memulakan program atau perintah dengan keutamaan lalai, anda boleh memulakannya dengan keutamaan tertentu menggunakan arahan yang baik mengikut.
$ sudo nice -n 5 tar -czf sandaran.tar.Gz ./Dokumen/* atau $ sudo bagus -penyesuaian = 5 tar -czf sandaran.tar.Gz ./Dokumen/*
Anda juga boleh menggunakan kaedah ketiga yang sedikit mengelirukan terutama untuk nilai niceness negatif.
$ sudo nice -5 tar -czf sandaran.tar.Gz ./Dokumen/*
Tukar keutamaan penjadualan proses di Linux
Seperti yang telah disebutkan sebelumnya, Linux membenarkan penjadualan berasaskan keutamaan dinamik. Oleh itu, jika program sudah berjalan, anda boleh mengubah keutamaannya dengan Perintah Renice dalam bentuk ini:
$ renice -n -12 -p 1055 $ renice -n -2 -u ApachePerubahan keutamaan proses
Dari sampel Atas output di bawah, ketelitian Teamspe+ dengan PID 1055 sekarang -12
Dan untuk semua proses yang dimiliki oleh pengguna Apache adalah -2
.
Masih menggunakan output ini, anda dapat melihat formula Pr = 20 + ni berdiri,
PR untuk TS3Server = 20 + -12 = 8 PR untuk proses Apache = 20 + -2 = 18Tonton proses Nilai yang bagus
Sebarang perubahan yang anda buat dengan Perintah Renice ke proses pengguna nilai yang bagus hanya boleh digunakan sehingga reboot seterusnya. Untuk menetapkan nilai lalai kekal, baca bahagian seterusnya.
Cara menetapkan nilai bagus lalai proses pengguna tertentu
Anda boleh menetapkan nilai lalai yang bagus bagi pengguna atau kumpulan tertentu di /etc/keselamatan/had.Conf fail. Fungsi utamanya adalah untuk menentukan had sumber bagi pengguna yang log masuk melalui PAM.
Sintaks untuk menentukan had untuk pengguna adalah seperti berikut (dan nilai yang mungkin dari pelbagai lajur dijelaskan dalam fail):
#
Sekarang gunakan sintaks di bawah di mana keras - bermaksud menguatkuasakan pautan keras dan cara lembut - menguatkuasakan had lembut.
keutamaan
Sebagai alternatif, buat fail di bawah /etc/keselamatan/had.d/ yang mengatasi tetapan dalam fail utama di atas, dan fail -fail ini dibaca dalam susunan abjad.
Mulakan dengan membuat fail /etc/keselamatan/had.D/Tecmint-Priority.Conf untuk pengguna Tecmint:
# vi/etc/keselamatan/had.D/Tecmint-Priority.Conf
Kemudian tambahkan konfigurasi ini di dalamnya:
Tecmint Priority Hard 10
Simpan dan tutup fail. Mulai sekarang, sebarang proses yang dimiliki oleh Tecmint akan mempunyai nilai yang bagus 10 dan PR of 30.
Untuk maklumat lanjut, baca halaman lelaki Bagus dan Renice:
$ man bagus $ man renice
Anda juga mungkin ingin membaca artikel berikut mengenai Pengurusan Proses Linux.
- Cara Mencari dan Membunuh Proses Berlari di Linux
- Panduan untuk Membunuh, Pkill dan Killall memerintahkan untuk menamatkan proses di Linux
- Cara Memantau Penggunaan Sistem, Pemadaman dan Selesaikan Pelayan Linux
- CPUTOOL - Had dan kawalan CPU menggunakan sebarang proses di Linux
Dalam artikel ini, kami menjelaskan secara ringkas penjadual kernel, keutamaan proses, melihat cara menjalankan program atau perintah dengan keutamaan yang diubahsuai dan juga mengubah keutamaan proses Linux aktif. Anda boleh berkongsi pendapat mengenai topik ini melalui borang maklum balas di bawah.