Mise à jour le 05/12/2021
CPU

CPU


1. Afficher la charge du CPU

Le calcul suivant fait une différence entre deux états sur une mesure durant 1 seconde.

awk '{u=$2+$4; t=$2+$4+$5; if (NR==1){u1=u; t1=t;} else print ($2+$4-u1) * 100 / (t-t1); }' <(grep 'cpu ' /proc/stat) <(sleep 1;grep 'cpu ' /proc/stat)


2. En pratique

Dans le cas où un processus dépend du calcul de CPU (par exemple une simulation de battement de coeur dépendant de la charge du CPU), il peut être pertinent de faire écrire dans un fichier partagé par les deux processus la charge du CPU.

Le premier programme n'est donc pas ralenti par le calcul puisqu'il n'a qu'un cat à faire sur le fichier généré par le second programme pour le lire.

Le code suivant est un exemple du second programme. Celui-ci stocke l'utilisation du CPU dans un fichier temporaire /tmp/cpu.

#!/bin/bash
while true
do
CPU=`awk '{u=$2+$4; t=$2+$4+$5; if (NR==1){u1=u; t1=t;} else print ($2+$4-u1) * 100 / (t-t1); }' <(grep 'cpu ' /proc/stat) <(sleep 1;grep 'cpu ' /proc/stat)`;
echo $CPU > /tmp/cpu;
sleep 1;
done