GNU/Linux >> Belajar Linux >  >> Ubuntu

Bagaimana Membatasi Penggunaan Sumber Daya Untuk Proses yang Diberikan?

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 :

  1. 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_bytes
    

    Perintah di atas membuat grup kontrol bernama szMyGroup (Misalnya dalam kasus Anda group-great-uncle ), tetapkan batas untuk proses yang dijalankan di bawah szMyGroup hingga 512 MB memori fisik dan hingga 1024 MB swap dan kemudian:

    sudo cgexec -g memory:szMyGroup szMyProgram
    

    yang akan menjalankan program Anda di bawah szMyGroup kelompok kontrol, sehingga memastikan mereka mematuhi batas

  2. batasi IO disk:

    sudo ionice --class 3 --pid $(pgrep -f szMyProgram)
    

    Perintah di atas menggunakan pgrep dengan menggunakan kembali bagian dari baris perintah saat ini untuk membatasi akses disknya agar hanya menggunakan disk ketika tidak ada program lain yang menggunakannya

  3. Batasi CPU:

    sudo cpulimit --limit=25 --pid=!#:4
    

    CPU 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.


Ubuntu
  1. Cara Membatasi Penggunaan CPU Suatu Proses Di Linux

  2. Periksa batas FD terbuka untuk proses tertentu di Linux

  3. Cara mengatur jalur untuk perintah sudo

  1. Tingkatkan Koneksi TCP untuk Plex di Ubuntu

  2. Bagaimana cara membatasi penggunaan memori aplikasi?

  3. Batasi penggunaan memori untuk satu proses Linux

  1. Cara melihat informasi penggunaan sumber daya di Plesk

  2. Linux – Batasi Penggunaan Memori Untuk Proses Linux Tunggal?

  3. Bagaimana penggunaan memori dilaporkan di Linux?