Hadkan penggunaan CPU proses di Linux dengan alat cpulimit

Hadkan penggunaan CPU proses di Linux dengan alat cpulimit

Dalam jawatan terdahulu, kami telah menerangkan cputool untuk mengehadkan dan mengawal penggunaan CPU dari sebarang proses di Linux. Ia membolehkan pentadbir sistem mengganggu pelaksanaan proses (atau kumpulan proses) jika beban CPU/sistem melampaui ambang yang ditetapkan. Di sini, kita akan belajar cara menggunakan alat serupa yang dipanggil cpulimit.

Cpulimit digunakan untuk menyekat penggunaan CPU proses dengan cara yang sama seperti Cputool, Walau bagaimanapun, ia menawarkan lebih banyak pilihan penggunaan berbanding rakan sejawatannya. Satu perbezaan penting ialah cpulimit tidak menguruskan beban sistem tidak seperti cputool.

Cadangan Baca: 9 Perintah berguna untuk mendapatkan maklumat CPU di Linux

Pasang cpulimit untuk menghadkan penggunaan CPU proses di Linux

Cpulimit tersedia untuk dipasang dari repositori perisian lalai Debian/Ubuntu dan derivatifnya menggunakan alat pengurusan pakej.

$ sudo apt pasang cpulimit 

Dalam RHEL/CENTOS dan Fedora, Anda perlu terlebih dahulu mengaktifkan repositori epel dan kemudian pasang cpulimit seperti yang ditunjukkan.

# yum memasang pelepasan epel
# yum pasang cpulimit

Mengehadkan penggunaan CPU Proses dengan Cuplimit

Di bahagian sub ini, kami akan menerangkan bagaimana CPULIMIT berfungsi. Pertama, mari kita jalankan (sama Perintah DD Kami melihat semasa menutupi cputool) yang harus menghasilkan peratusan CPU yang tinggi, di latar belakang (perhatikan bahawa proses PID dicetak selepas menjalankan arahan).

$ dd if =/dev/sifar =/dev/null & [1] 17918 

Seterusnya, kita boleh menggunakan alat atas atau pandangan yang mengeluarkan keadaan yang sering dikemas kini dengan sistem linux yang sering dikemas kini, untuk menonton penggunaan CPU arahan di atas.

$ atas 
Pantau penggunaan CPU di Linux

Melihat output di atas, kita dapat melihat bahawa DD Proses menggunakan peratusan tertinggi masa CPU 100.0%.

Tetapi kita boleh mengehadkan ini menggunakan cputlimit seperti berikut. The --pid atau -p pilihan digunakan untuk menentukan PID dan --had atau -L digunakan untuk menetapkan peratusan penggunaan untuk proses.

Perintah di bawah akan mengehadkan Perintah DD (PID 17918) hingga 50% penggunaan satu teras CPU.

$ sudo cpulimit --pid 17918 --MiT 50 Proses 17918 dikesan 

Sebaik sahaja kita menjalankan cpulimit, kita dapat melihat penggunaan CPU semasa untuk Perintah DD dengan puncak atau pandangan. Dari output, nilai berkisar dari (51.5%-55.0% atau sedikit di luar).

Hadkan penggunaan proses CPU di Linux

Kita boleh mendekati penggunaan CPU untuk kali kedua seperti berikut, kali ini menurunkan peratusan lagi seperti berikut:

$ sudo cpulimit --pid 17918 --MiT 20 Proses 17918 dikesan 

Seperti yang kita lakukan sebelum ini, kita boleh menjalankan atas atau pandangan untuk melihat penggunaan CPU baru untuk proses itu, yang akan berkisar 20%-25.0% atau sedikit di luar ini.

$ atas 
Penggunaan CPU pendikit di Linux

Catatan: Shell menjadi tidak interaktif - tidak mengharapkan sebarang input pengguna ketika cpulimit sedang berjalan. Untuk membunuhnya (yang sepatutnya menghentikan operasi had penggunaan CPU), tekan [Ctrl + C].

Untuk menjalankan cpulimit sebagai proses latar belakang, gunakan --latar belakang atau -b beralih, membebaskan terminal.

$ sudo cpulimit --pid 17918 - -Limit 20 -Background 

Untuk menentukan bilangan teras CPU yang terdapat pada sistem, gunakan --CPU atau -c bendera (ini biasanya dikesan secara automatik).

$ sudo cpulimit --pid 17918 - -Limit 20 --cpu 4 

Daripada mengehadkan penggunaan CPU proses, kita boleh membunuhnya dengan --bunuh atau -k pilihan. Lalai adalah isyarat yang dihantar ke proses adalah Sigcont, Tetapi untuk menghantar isyarat yang berbeza, gunakan --isyarat atau -s bendera.

$ sudo cpulimit --pid 17918 - -Limit 20 --Kill 

Untuk keluar jika tidak ada proses sasaran yang sesuai, atau sekiranya ia mati, sertakan -z atau --malas seperti ini.

$ sudo cpulimit --pid 17918 - -Limit 20 --Kill -Lazy 

Untuk pilihan maklumat dan penggunaan tambahan, lihat halaman Cpulimit Man.

$ man cpulimit 

Semak panduan berguna berikut untuk mencari maklumat CPU dan pemantauan prestasi CPU/sistem.

  1. Cari proses berjalan atas dengan memori tertinggi dan penggunaan CPU di Linux
  2. CPUSTAT - Memantau penggunaan CPU dengan menjalankan proses di Linux
  3. COREFREQ - Alat pemantauan CPU yang kuat untuk sistem Linux
  4. Cari proses berjalan atas dengan memori tertinggi dan penggunaan CPU di Linux
  5. 20 Alat baris arahan untuk memantau prestasi linux
  6. 13 Alat Pemantauan Prestasi Linux - Bahagian 2

Sebagai perbandingan, selepas menguji cputool dan Cpulimit, Kami perhatikan bahawa bekas menawarkan fungsi "had penggunaan CPU" yang lebih berkesan dan boleh dipercayai.

Ini mengikut peratusan julat penggunaan CPU yang diperhatikan selepas menjalankan kedua -dua alat terhadap proses tertentu. Cuba kedua -dua alat dan tambahkan pemikiran anda ke artikel ini menggunakan borang maklum balas di bawah.