2012-01-29 5 views
1

Мне нужно вычислить использование ЦП (пользовательский режим, системный режим, время простоя) процесса в Linux. Я могу рассчитать использование в пользовательском и системном режимах с использованием utime и stime значений от /proc/PID/stat, но я ничего не нашел, что связано с временем простоя.Простой процесс в Linux

Я знаю, что могу получить простоя от /proc/stat, но это значение связано с машиной, а не для конкретного процесса.

Возможно ли рассчитать время простоя процесса, зная его PID (данные для чтения от /proc)?

+0

Простой процессор для CPU - это время, когда он не выполнил какой-либо (полезный) код. Что означает время простоя процесса? – gby

+0

Исправьте меня, если я ошибаюсь, но я понимаю время простоя процесса как время, когда использование процессора процессора (как в пользовательском, так и в системном режимах) составляет 0%. –

+0

Как вы рассчитываете время, когда процесс выполняется на нескольких ядрах через несколько потоков? –

ответ

2

Я много об этом, но, может быть, следующих работах: не знаю

1) Get the process start up time. Im sure thats possible 
2) Generate time difference (dTime = CurrentTime - TimeProcessStarted) 
3) Substract the time the process is running (dTime - (usageSystemMode + usageUserMode)) 

Надеется, что это помогает! : D

+0

Я думаю, что ваше решение будет работать :) Время запуска процесса можно получить из/proc/PID/stat, используя значение времени начала. благодаря –