CPU

Cara Membatasi Penggunaan CPU dari suatu Proses di Linux

Cara Membatasi Penggunaan CPU dari suatu Proses di Linux
Dalam masa hidup Linux Anda, Anda pasti pernah melihat beberapa proses mengambil semua siklus CPU (penggunaan CPU 90-99%), membuat komputer Anda hampir tidak responsif sampai selesai. Itu mungkin baik-baik saja jika prosesnya membutuhkan beberapa detik untuk diselesaikan. Tapi bagaimana Jika butuh waktu lama? Itu tidak baik untuk duduk dan melihat komputer Anda yang tidak responsif selama beberapa menit dan jam, bukan?? Nah, Linux memiliki banyak alat luar biasa untuk membuatnya tidak terlalu bagus proses untuk bagus proses.

Anda dapat mengatur berapa banyak CPU yang boleh dimiliki oleh satu proses process. Jika proses benar-benar membutuhkan banyak daya CPU, Anda dapat menjalankan beberapa perintah untuk memberikan semua siklus CPU yang tidak digunakan (siklus CPU yang tidak Anda perlukan). Dengan begitu, Anda tidak perlu duduk dan menatap komputer Anda yang tidak responsif dalam waktu lama.

Pada artikel ini, saya akan menunjukkan cara Membatasi penggunaan CPU dari suatu proses di Linux. Saya akan menggunakan CentOS 7 dalam artikel ini. Tetapi distribusi Linux modern apa pun harus berfungsi. Jadi, mari kita mulai.

Membatasi Penggunaan CPU dengan nice dan renice:

Di Linux, prioritas setiap proses yang berjalan dapat diubah. Anda dapat menetapkan prioritas yang lebih tinggi untuk proses yang lebih penting bagi Anda daripada proses yang memonopoli CPU Anda tanpa alasan yang jelas.

Setiap proses di Linux memiliki nilai yang bagus. Nilai nice menentukan proses mana yang memiliki prioritas lebih tinggi dan mana yang lebih rendah. Nilai bagus bisa antara -20 hingga 19. Proses dengan nilai bagus -20 akan memiliki prioritas tertinggi dan akan menggunakan sebagian besar siklus CPU. Proses dengan nilai bagus 19 akan memiliki prioritas terendah dan akan menggunakan CPU ketika tidak ada proses lain yang menggunakannya saja.

Ada dua cara untuk menetapkan nilai bagus dari suatu proses. Anda dapat memulai proses dengan bagus perintah untuk menetapkan nilai yang bagus saat memulai proses. Atau Anda dapat menggunakan renice perintah untuk menetapkan nilai yang bagus setelah proses dimulai.

Untuk menetapkan nilai yang bagus saat Anda memulai proses, jalankan proses sebagai berikut:

$ bagus -n NICE_VALUE COMMAND_TO_RUN

CATATAN: Sini NICE_VALUE bisa apa saja dari -20 sampai 19 dan COMMAND_TO_RUN adalah perintah apa pun yang ingin Anda jalankan dengan nilai Nice dari NICE_VALUE.

Misalnya, katakanlah, Anda ingin menjalankan run tidur perintah dengan nilai bagus dari 14. Jalankan perintah sebagai berikut:

$ bagus -n 14 tidur 40000 &

Sekarang Anda dapat memverifikasi apakah nilai Nice diatur dengan benar menggunakan perintah atas top. Anda dapat membuat daftar semua proses yang Anda mulai (sebagai pengguna login Anda) dengan perintah berikut:

$ ps -fl

Seperti yang Anda lihat, nilai bagus dari proses diatur ke 14.

Sekarang jika Anda ingin mengubah nilai Nice dari proses yang ada, maka yang Anda butuhkan hanyalah ID proses (PID) dari proses yang ingin Anda ubah nilai Nicenya. Anda dapat menggunakan ps aux perintah atau puncak perintah untuk menemukan ID proses atau PID.

Lalu kamu bisa lari renice perintah sebagai berikut untuk mengubah nilai Nice dari proses yang ada:

$ sudo renice -n NEW_NICE_VALUE -p PROCESS_PID

Seperti yang Anda lihat, nilai bagus dari proses dengan PID 6422 berubah.

Membatasi Penggunaan CPU dengan CGROUPS:

Bentuk lengkap dari GRUP aku s Ckendali Group. Ini adalah fitur kernel Linux yang digunakan untuk membatasi sumber daya untuk memproses grup seperti (CPU, memori, izin, dan banyak lagi) di Linux.

Yang harus Anda lakukan adalah, buat grup proses baru dan tambahkan proses Anda yang ingin Anda batasi sumber dayanya, ke grup itu. Sederhana!

Alat manajemen CGROUPS tidak diinstal pada CentOS 7 secara default. Tapi itu tersedia di repositori paket resmi CentOS 7.

Pertama-tama perbarui cache repositori paket YUM dengan perintah berikut:

$ sudo yum makecache

Sekarang instal alat manajemen CGROUPS dengan perintah berikut:

$ sudo yum install libcgroup-tools

Sekarang tekan kamu lalu tekan .

Itu harus dipasang.

Anda dapat membatasi penggunaan CPU dari satu grup. Misalnya, Anda dapat menggunakan CGROUPS untuk memberi tahu proses dalam CGROUP untuk menggunakan katakanlah 100 md dari setiap 1000 md (atau .1 detik dari setiap 1 detik) waktu CPU.

Pertama buat CGROUP dengan perintah berikut:

$ sudo cgcreate -g cpu:/cpulimit

CATATAN: Sini, batas cpu adalah nama grup yang mengontrol cpu pemakaian.

Sekarang, Anda harus mengatur cpu.cfs_period_us dan cpu.cfs_quota_us properti di batas cpu kelompok.

Untuk contoh ini, 1000ms (milidetik) atau 1000000us (mikrodetik) harus disetel ke cpu.cfs_period_us properti dan 100ms atau 100000us harus disetel ke cpu.cfs_quota_us Properti.

Jalankan perintah berikut untuk mengatur properti ini ke to batas cpu kelompok:

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

Sekarang Anda dapat menjalankan perintah berikut untuk memeriksa apakah semua properti telah disetel dengan benar:

$ sudo cgget -g cpu:cpulimit

CATATAN: Sini, batas cpu adalah nama CGROUP dan cpu adalah sumber daya yang saya batasi.

Seperti yang terlihat, cpu.cfs_period_us dan cpu.cfs_quota_us diatur dengan benar.

Sekarang proses apa pun yang Anda tambahkan batas cpu CGROUP akan menggunakan 1/10ini (100000/1000000 = 1/10 = 0.1 = 10%) dari total siklus CPU.

Sekarang untuk membatasi CPU suatu proses, mulai program atau perintah dengan cgexec sebagai berikut:

$ sudo cgexec -g cpu:cpulimit YOUR_COMMAND

CATATAN: Sini, PERINTAH_MU dapat berupa perintah Linux yang valid.

Untuk membuktikan bahwa itu benar-benar berfungsi, pertama saya akan menjalankan perintah berikut tanpa CGROUPS dan kemudian dengan CGROUPS dan menunjukkan hasilnya kepada Anda.

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

Seperti yang Anda lihat, tanpa CGROUPS, perintah menggunakan 90% dari total CPU.

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

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

Seperti yang Anda lihat, penggunaan CPU maksimal 10%. Prosesnya tidak menggunakan lebih dari itu.

Jadi begitulah cara Anda menggunakan CGROUPS untuk membatasi penggunaan CPU dari suatu proses di Linux. Terima kasih telah membaca artikel ini.

Referensi:

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

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

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

Cara Menampilkan Penghitung FPS di Game Linux
Game Linux mendapat dorongan besar ketika Valve mengumumkan dukungan Linux untuk klien Steam dan game mereka pada tahun 2012. Sejak itu, banyak game A...
Cara mengunduh dan Memainkan Civilization VI Sid Meier di Linux
Pengenalan permainan Civilization 6 adalah konsep modern dari konsep klasik yang diperkenalkan dalam seri game Age of Empires. Idenya cukup sederhana;...
Cara Menginstal dan Memainkan Doom di Linux
Pengantar Doom Seri Doom berasal dari tahun 90-an setelah rilis Doom. Itu adalah hit instan dan sejak saat itu seri game telah menerima banyak penghar...