現在使用中の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'
それらを数える
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