Есть процесс (на линуксе), на который приходят запросы (разные). Я хочу обнаружить какие запросы потребляют слишком много CPU.
Изначально планировал так: в начале запроса получаю текущее время (start_time) и сохраняю текущее значение
getrusage
(в частности user_start_time - время в режиме пользователя), а в конце запроса высчитываю потребление таким образом:
(end_time - start_time) / (user_end_time - user_start_time)
.
Но:
1. Правильна ли эта формула?
2. Стоит ли учитывать системное время (из того же rusage)?
3. Есть ли другие подходы?