расчет средней нагрузки за заданное время
От: OdesitVadim Украина  
Дата: 21.07.10 08:14
Оценка:
Доброго времени суток.

В Linux'е есть такая штука как LA, которая показывает нагрузку за последние 1, 5 и 15 минут. Хочеться иметь такое в своем приложении — то есть кол-во каких то операций за последнюю минуту.
На данный момент есть такие идеи к реализации.

— писать в базу все события, а потом sql запросов выбирать заданное событие за заданный период времени. То есть где то так
select count(*) from table_events where (event=заданный_event) and (now — event_date < 1min)

Но если событий много, а статистику часто запрашивают — будет нагрузка... да и базу подчищать нужно.

— писать в некий очередь (std::queue, массив, файл), время от времени подрезать хвост... в целом тот же предыдущий, но с дополнительными велосипедами...

— выдавать статистику за предыдущий последний интервал. То есть счетчик считает, когда интервал достигнут, значение счетчика выдается как результат, счетчик обнуляется и снова начинает инкрементиться. Производительность будет хорошей, но данные будут "устаревшими".

Может есть какие то правильные алгоритмы?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.