GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come limitare l'utilizzo delle risorse per un determinato processo?

Ho un processo per un'applicazione che deve essere eseguita, ma finisce per utilizzare troppo l'utilizzo dell'IO per quello che fa. E manda davvero in crash il mio computer, rendendo impossibile fare qualsiasi altra cosa mentre è in esecuzione.

Quindi mi chiedevo se esiste un modo per limitare l'utilizzo di IO, RAM e CPU per un determinato processo? E ovviamente i suoi sottoprocessi.

Questo è sul mio sistema Ubuntu 18.04 LTS.

Migliore risposta

Dovresti usare una combinazione di tutti i cgexec , cpulimit e ionice :

  1. Limita RAM e 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
    

    I comandi precedenti creano un gruppo di controllo denominato szMyGroup (Es. nel tuo caso group-great-uncle ), imposta un limite ai processi eseguiti in szMyGroup fino a 512 MB di memoria fisica e fino a 1024 MB di swap e poi:

    sudo cgexec -g memory:szMyGroup szMyProgram
    

    che eseguirà il tuo programma sotto szMyGroup gruppo di controllo, garantendo così il rispetto dei limiti

  2. limitare l'IO del disco:

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

    Il comando precedente usa pgrep con il riutilizzo di parti della riga di comando corrente per limitare l'accesso al disco per utilizzare il disco solo quando nessun altro programma lo sta utilizzando

  3. Limita la CPU:

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

    La CPU del programma è ora limitata al 25% del massimo

Se il programma non utilizza molta CPU per cominciare, abbassa il valore di cpulimit alla metà o meno di quello che usa attualmente.


Ubuntu
  1. Come visualizzare le informazioni sull'utilizzo delle risorse in Plesk

  2. Linux:limite all'utilizzo della memoria per un singolo processo Linux?

  3. Controlla il limite FD aperto per un determinato processo in Linux

  4. Come limitare l'utilizzo della memoria dell'applicazione?

  5. Come viene riportato l'utilizzo della memoria in Linux?

Come modificare il limite di tempo per una sessione di sudo

Come specificare il limite di tempo per una sessione di sudo

Come limitare la larghezza di banda della rete in Ubuntu

Come specificare il limite di tempo per una sessione di sudo in Ubuntu 20.04 LTS

Come monitorare le informazioni sui limiti delle risorse in cPanel?

Come monitorare l'utilizzo delle risorse e le metriche in cPanel