use*_*815 6 cpu process ps real-time priority
如何正确识别当前占用CPU队列的实时进程并使用ps统计它们?我知道有一堆像 prio、rtprio、pri、nice 这样的文件,但不知道正确使用。似乎我需要使用类似的东西ps -eo rtprio,prio,cpu,cmd --sort=+rtprio来获取完整列表,但对我来说似乎不正确,因为很多进程-在 RTPRIO 列中都带有符号。例如,我有一个运行 Oracle Linux 的 48 核系统,并尝试确定以下问题:
非零 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'
Run Code Online (Sandbox Code Playgroud)
去数他们
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
Run Code Online (Sandbox Code Playgroud)
要看到这个不断更新,但它们在一个名为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'
Run Code Online (Sandbox Code Playgroud)
并使用chmod +x processes.sh. 现在使用 watch 运行它以进行实时更新:
watch ./processes.sh
Run Code Online (Sandbox Code Playgroud)