Linux를 사용하여 프로세스 일정을 실시간으로 모니터링할 수 있습니까?

Linux를 사용하여 프로세스 일정을 실시간으로 모니터링할 수 있습니까?

저는 RaspberryPi를 사용하여 다중 프로세스 시스템을 개발하려고 합니다. 여기서 모든 주요 프로세스와 Linux를 사용하여 프로세스가 예약되는 방식을 모니터링하고 싶습니다. 즉, 스케줄러 상태, 시작 시간, 릴리스 시간 등을 가져옵니다. 나는 이와 같은 정보를 찾으려고 "/proc" 폴더를 뒤져봤지만 지금까지는 정말 유용한 것을 찾지 못했습니다.

예를 들어 /proc/pid/task/pid에 들어가면 다음을 볼 수 있습니다.

se.exec_start
se.vruntime
se.sum_exec_runtime
se.statistics.wait_start
se.statistics.sleep_start
se.statistics.block_start
se.statistics.sleep_max
se.statistics.block_max
se.statistics.iowait_sum
se.statistics.wakeups

등. 이제 내가 뭔가를 하고 있는 것처럼 보이지만 충분히 명확하지 않습니다. 코어에서 프로세스가 어떻게 예약되는지 보고 싶습니다. 즉, 프로세스 1은 0.30에 해제되고, 프로세스 2는 0.70(시스템 타이머 값)에 시작되는 식입니다.

"/proc"와 같은 커널 폴더를 모니터링하면 비슷한 것이 가능합니까? 그렇지 않은 경우 다른 Linux 추적 도구나 스케줄러 도구를 사용하여 이를 확인할 수 있는 방법이 있습니까?

어떤 지침이라도 대단히 감사하겠습니다. 추가로 필요한 정보가 있으면 알려주시기 바랍니다.

미리 감사드립니다.

답변1

각 프로세스가 시작되는 방법과 종료되는 방법/이유는 다릅니다. 프로세스가 수행하는 호출을 확인하지 않는 한 수행하려는 작업은 실제로 가능하지 않은 것처럼 보입니다. 이 경우 strace출력을 사용하고 출력을 정렬하여 정확히 무엇을 수행하는지 확인할 수 있습니다.

관련 정보