CPU

Cara Mengehadkan Penggunaan CPU Proses di Linux

Cara Mengehadkan Penggunaan CPU Proses di Linux
Dalam jangka hayat Linux anda, anda pasti melihat beberapa proses menggunakan semua kitaran CPU (penggunaan CPU 90-99%), menjadikan komputer anda hampir tidak responsif sehingga selesai. Mungkin tidak mengapa jika prosesnya memerlukan beberapa saat untuk diselesaikan. Tetapi bagaimana Sekiranya ia memerlukan masa yang lama? Itu tidak bagus untuk duduk dan melihat komputer anda yang tidak responsif selama beberapa minit dan jam, betul? Nah, Linux mempunyai banyak alat hebat untuk membuatnya tidak begitu bagus proses ke bagus proses.

Anda boleh menetapkan berapa banyak proses CPU yang dibenarkan. Sekiranya proses tersebut benar-benar memerlukan banyak daya CPU, Anda dapat menjalankan beberapa perintah untuk memberikan semua siklus CPU yang tidak berfungsi (kitaran CPU yang tidak Anda perlukan). Dengan begitu, anda tidak perlu duduk lama dan menatap komputer anda yang tidak responsif lama.

Dalam artikel ini, saya akan menunjukkan kepada anda cara Membatasi penggunaan proses CPU di Linux. Saya akan menggunakan CentOS 7 dalam artikel ini. Tetapi apa-apa pengedaran Linux moden mesti berfungsi. Oleh itu, Mari kita mulakan.

Mengehadkan Penggunaan CPU dengan baik dan baik:

Di Linux, keutamaan setiap proses yang berjalan dapat diubah. Anda boleh menetapkan keutamaan yang lebih tinggi untuk proses yang lebih penting bagi anda daripada proses yang memonopoli CPU anda tanpa alasan yang baik.

Setiap proses di Linux mempunyai nilai yang bagus. Nilai bagus menentukan proses mana yang mempunyai keutamaan yang lebih tinggi dan mana yang lebih rendah. Nilai bagus antara -20 hingga 19. Proses dengan nilai bagus -20 akan mempunyai keutamaan tertinggi dan akan menggunakan kitaran CPU terbanyak. Proses dengan nilai bagus 19 akan mempunyai keutamaan terendah dan akan menggunakan CPU apabila tidak ada proses lain yang menggunakannya.

Terdapat dua cara untuk menetapkan nilai proses yang bagus. Anda boleh memulakan proses dengan bagus arahan untuk menetapkan nilai yang bagus semasa memulakan proses. Atau anda boleh menggunakan renice arahan untuk menetapkan nilai yang bagus setelah proses dimulakan.

Untuk menetapkan nilai yang bagus semasa anda memulakan proses, jalankan prosesnya seperti berikut:

$ bagus -n NICE_VALUE COMMAND_TO_RUN

NOTA: Di sini BAGUS_NILAI dapat apa sahaja dari -20 hingga 19 dan KOMAND_TO_RUN adalah sebarang arahan yang ingin anda jalankan dengan nilai bagus BAGUS_NILAI.

Sebagai contoh, katakan, anda mahu menjalankan tidur perintah dengan nilai bagus 14. Jalankan arahan seperti berikut:

$ bagus -n 14 tidur 40000 &

Sekarang anda boleh mengesahkan sama ada nilai bagus ditetapkan dengan betul menggunakan perintah teratas. Anda boleh menyenaraikan semua proses yang anda mulakan (sebagai pengguna log masuk anda) dengan arahan berikut:

$ ps -fl

Seperti yang anda lihat, nilai proses yang baik ditetapkan ke 14.

Sekarang jika anda ingin mengubah nilai bagus dari proses yang ada, maka yang anda perlukan hanyalah proses ID (PID) proses yang mana anda ingin mengubah nilai bagus. Anda boleh menggunakan ps aux arahan atau bahagian atas arahan untuk mencari ID proses atau PID.

Kemudian anda boleh berlari renice arahan seperti berikut untuk mengubah nilai bagus dari proses yang ada:

$ sudo renice -n NEW_NICE_VALUE -p PROCESS_PID

Seperti yang anda lihat, nilai proses yang baik dengan PID 6422 berubah.

Mengehadkan Penggunaan CPU dengan CGROUPS:

Bentuk lengkap dari KUMPULAN adalah Control Gberkumpulan. Ini adalah ciri kernel Linux yang digunakan untuk membatasi sumber daya untuk memproses kumpulan seperti (CPU, memori, izin dan banyak lagi) di Linux.

Yang harus anda buat hanyalah, buat kumpulan proses baru dan tambahkan proses anda yang ingin anda hadkan sumbernya, ke kumpulan itu. Ringkas!

Alat pengurusan CGROUPS tidak dipasang pada CentOS 7 secara lalai. Tetapi ia boleh didapati di repositori pakej rasmi CentOS 7.

Kemas kini terlebih dahulu cache repositori pakej YUM dengan arahan berikut:

$ sudo yum makecache

Sekarang pasang alat pengurusan CGROUPS dengan arahan berikut:

$ sudo yum pasang alat libcgroup

Sekarang tekan y dan kemudian tekan .

Ia mesti dipasang.

Anda boleh mengehadkan penggunaan CPU satu kumpulan. Sebagai contoh, anda boleh menggunakan CGROUPS untuk memberitahu proses dalam CGROUP untuk digunakan katakanlah 100ms daripada setiap 1000ms (atau .1s dari setiap 1s) masa CPU.

Pertama buat CGROUP dengan arahan berikut:

$ sudo cgcreate -g cpu: / cpulimit

NOTA: Di sini, cpulimit adalah nama kumpulan yang mengawal CPU penggunaan.

Sekarang, anda mesti menetapkan CPU.cfs_period_us dan CPU.cfs_quota_us harta tanah di cpulimit kumpulan.

Untuk contoh ini, 1000ms (milisaat) atau 1000000us (mikrodetik) harus ditetapkan ke CPU.cfs_period_us harta tanah dan 100ms atau 100000us harus ditetapkan ke CPU.cfs_quota_us harta benda.

Jalankan arahan berikut untuk menetapkan sifat ini ke cpulimit kumpulan:

$ sudo cgset -r cpu.cfs_period_us = 1000000 cpulimit
$ sudo cgset -r cpu.cfs_quota_us = 100000 cpulimit

Sekarang anda boleh menjalankan perintah berikut untuk memeriksa sama ada semua sifat ditetapkan dengan betul:

$ sudo cgget -g cpu: cpulimit

NOTA: Di sini, cpulimit adalah nama CGROUP dan CPU adalah sumber yang saya hadkan.

Seperti yang anda lihat, CPU.cfs_period_us dan CPU.cfs_quota_us ditetapkan dengan betul.

Sekarang apa sahaja proses yang anda tambahkan cpulimit CGROUP akan menggunakan 1/10ika (100000/1000000 = 1/10 = 0.1 = 10%) daripada jumlah kitaran CPU.

Sekarang untuk membatasi CPU proses, mulakan program atau perintah dengan cgexec seperti berikut:

$ sudo cgexec -g cpu: cpulimit YOUR_COMMAND

NOTA: Di sini, PENGHARGAAN ANDA boleh menjadi perintah Linux yang sah.

Untuk membuktikan bahawa ia betul-betul berfungsi, pertama saya akan menjalankan perintah berikut tanpa CGROUPS dan kemudian dengan CGROUPS dan menunjukkan hasilnya.

$ dd if = / dev / zero of = out bs = 1M

Seperti yang anda lihat, tanpa CGROUPS, perintah menggunakan 90% dari jumlah CPU.

Kemudian, saya menjalankan perintah yang sama dengan CGROUPS seperti berikut:

$ sudo cgexec -g cpu: cpulimit dd if = / dev / zero of = out bs = 1M

Seperti yang anda lihat, penggunaan CPU maksimum 10%. Prosesnya tidak menggunakan lebih daripada itu.

Oleh itu, anda menggunakan CGROUPS untuk membatasi penggunaan proses CPU di Linux. Terima kasih kerana membaca artikel ini.

Rujukan:

[1] https: // akses.topi merah.com / dokumentasi / en-us / red_hat_enterprise_linux / 6 / html / resource_management_guide / sec-cpu

[2] https: // linux.mati.bersih / lelaki / 1 / bagus

[3] https: // linux.mati.net / lelaki / 8 / renice

Permainan Terbaik untuk Dimainkan dengan Penjejakan Tangan
Oculus Quest baru-baru ini memperkenalkan idea hebat penjejakan tangan tanpa pengawal. Dengan jumlah permainan dan aktiviti yang semakin meningkat yan...
Cara Menunjukkan Overlay OSD dalam Aplikasi dan Permainan Linux Skrin Penuh
Bermain permainan skrin penuh atau menggunakan aplikasi dalam mod skrin penuh bebas gangguan dapat memisahkan anda dari maklumat sistem yang relevan y...
5 Kad Tangkap Permainan Teratas
Kita semua telah melihat dan menyukai streaming permainan permainan di YouTube. PewDiePie, Jakesepticye, dan Markiplier hanyalah beberapa pemain terat...