Diminuer la charge cpu d’un process avec renice 2


Il arrive que l’on ai a executer certains scripts sur un serveur de prod deja pas mal encombré, je prends comme exemple mon cas ou j’ai du reencoder des vidéos, le load average est monté à 6, les perfs en sont du coup devenues execrables.
Sous linux on a heureusement plein d’outils sympas, renice en fait partie.

La commande renice permet d’assigner une priorite a un process en cours qui va de -20 (tres elevee) à 20 (tres bas), 0 etant la valeur par défaut. La commande est “renice priorite id_process”, dans mon cas:

Note: On peut connaitre l’id du process avec un top ou htop

PID USER        PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND          
14378 max 	35  15  129m  12m 4632 R 99.4  0.2   0:03.22 ffmpeg       
22959 max       20  15  101m  79m  924 S  1.7  1.3   8:51.85 python encode.py                
22958 nginx     20   0  105m  83m  924 S  1.0  1.4   8:51.44 nginx

Ici ffmpeg à un nice (NI) de 15 qu’il a herité de mon script Python encode.py a qui j’ai fais un renice de 15 avec la commande “renice 15 22959”. Les process heritent automatiquement du nice des parents qui les ont lancés.

2 thoughts on “Diminuer la charge cpu d’un process avec renice

Leave a comment

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.