Saya memiliki proses untuk aplikasi yang perlu dijalankan, tetapi akhirnya menggunakan terlalu banyak penggunaan IO untuk apa yang dilakukannya. Dan benar-benar membuat komputer saya crash, sehingga tidak mungkin melakukan hal lain saat sedang berjalan.
Jadi saya bertanya-tanya apakah ada cara untuk membatasi penggunaan IO, RAM, dan CPU untuk proses tertentu? Dan sub-prosesnya tentu saja.
Ini ada di sistem Ubuntu 18.04 LTS saya.
Jawaban Terbaik
 Anda harus menggunakan kombinasi semua cgexec , cpulimit dan ionice :
-  
Batasi RAM dan SWAP:
sudo cgcreate -g memory:/szMyGroup echo $(( 512 * 1024 * 1024 )) | sudo tee /sys/fs/cgroup/memory/szMyGroup/memory.limit_in_bytes echo $(( 1024 * 1024 * 1024 )) | sudo tee /sys/fs/cgroup/memory/szMyGroup/memory.memsw.limit_in_bytesPerintah di atas membuat grup kontrol bernama
szMyGroup(Misalnya dalam kasus Andagroup-great-uncle), tetapkan batas untuk proses yang dijalankan di bawahszMyGrouphingga 512 MB memori fisik dan hingga 1024 MB swap dan kemudian:sudo cgexec -g memory:szMyGroup szMyProgramyang akan menjalankan program Anda di bawah
szMyGroupkelompok kontrol, sehingga memastikan mereka mematuhi batas -  
batasi IO disk:
sudo ionice --class 3 --pid $(pgrep -f szMyProgram)Perintah di atas menggunakan
pgrepdengan menggunakan kembali bagian dari baris perintah saat ini untuk membatasi akses disknya agar hanya menggunakan disk ketika tidak ada program lain yang menggunakannya -  
Batasi CPU:
sudo cpulimit --limit=25 --pid=!#:4CPU program sekarang dibatasi hingga 25% dari maksimum
 
Jika program tidak menggunakan banyak CPU untuk memulai, turunkan nilai cpulimit menjadi setengah atau kurang dari yang digunakan saat ini.