현재 CPU 큐를 점유하고 있는 실시간 프로세스를 올바르게 식별하고 ps를 사용하여 이를 계산하는 방법은 무엇입니까? 나는 prio, rtprio, pri, nice와 같은 파일이 많다는 것을 알고 있지만 올바르게 사용하는 방법을 모릅니다. 전체 목록을 가져오는 것과 같은 방법을 사용해야 할 것 같지만 ps -eo rtprio,prio,cpu,cmd --sort=+rtprio
많은 프로세스가 -
RTPRIO 열에 기호를 가지고 있기 때문에 그것은 나에게 적합하지 않은 것 같습니다. 예를 들어, Oracle Linux를 실행하는 48코어 시스템이 있고 다음 문제를 식별하려고 합니다.
- 어떤 프로세스가 실행 대기열을 차지합니까? 그들의 전화번호는 몇 번입니까?
- 실시간 모드에서 실행 중이거나 우선 순위가 더 높은 프로세스를 식별하는 방법은 무엇입니까?
답변1
0이 아닌 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를 사용하여 실시간 업데이트를 실행하세요.
watch ./processes.sh