Cara Menetapkan Keutamaan Proses Linux Menggunakan Perintah Nice dan Renice

Cara Menetapkan Keutamaan Proses Linux Menggunakan Perintah Nice dan Renice

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, comm 
Lihat 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 $ htop 
Semak 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, sementara
  • Pr atau Pri - 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.

Proses Linux RT

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 Apache 
Perubahan 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 = 18 
Tonton 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.

  1. Cara Mencari dan Membunuh Proses Berlari di Linux
  2. Panduan untuk Membunuh, Pkill dan Killall memerintahkan untuk menamatkan proses di Linux
  3. Cara Memantau Penggunaan Sistem, Pemadaman dan Selesaikan Pelayan Linux
  4. 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.