Как правильно идентифицировать процессы реального времени, занимаемые в настоящее время в очереди процессоров, и считать их с помощью ps? Я знаю, что есть куча таких файлов, как prio, rtprio, pri, nice, но не знаю, что правильно использовать. Кажется, мне нужно использовать что-то вроде ps -eo rtprio,prio,cpu,cmd --sort=+rtprio
чтобы получить полный список, но это не кажется мне правильным, так как сработало много процессов -
знак в столбце RTPRIO. Например, у меня есть система с 48 ядрами, работающая под управлением Oracle Linux, и попытайтесь определить следующие вопросы:
Список ненулевых процессов CPU%:
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm --sort=+pcpu | awk '$8!=0.0 {print}' | awk 'NR>1'
Считать их
ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm --sort=+pcpu | awk '$8!=0.0 {print}' | awk 'NR>1' | wc -l
Чтобы увидеть это постоянно обновляемое, но в файле с именем processes.sh
:
#!/bin/bash ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm --sort=+pcpu | awk '$8!=0.0 {print}' | awk 'NR>1'
и сделать его исполняемым с помощью chmod +x processes.sh
. Теперь запустите его с часами для живого обновления:
watch ./processes.sh