Comment sortinger la sortie ps pour find la priorité des process en time réel et identifier la queue courante actuellement occupée

Comment identifier correctement les process en time réel actuellement occupés CPU queue et les countr en utilisant ps? Je sais qu'il y a un tas de fileds comme prio, rtprio, pri, gentil mais ne savent pas correct à utiliser. Il semble que j'ai besoin d'utiliser quelque chose comme ps -eo rtprio,prio,cpu,cmd --sort=+rtprio pour get la list complète, mais cela ne me semble pas correct puisque beaucoup de process sont arrivés avec - signe à la colonne RTPRIO. Par exemple, j'ai un système de 48 coeurs exécutant Oracle Linux et j'essaie d'identifier les questions suivantes:

  1. Quels process occupent la queue? Quel est le nombre d'entre eux?
  2. Comment identifier les process qui s'exécutent en mode time réel ou avec une priorité accrue?

Une list de process% CPU% non:

 ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm --sort=+pcpu | awk '$8!=0.0 {print}' | awk 'NR>1' 

Pour les countr

 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 

Pour voir cela mis à jour en permanence, mais dans un file appelé 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' 

et le rendre exécutable avec chmod +x processes.sh . Maintenant, lancez-le avec surveillance pour la mise à jour en direct:

 watch ./processes.sh