Ключевые слова:load_average, monitor, cpu, freebsd, (найти похожие документы)
Date: Wed, 28 Jan 2004 02:04:31 +0500
From: Valentin Nechayev <netch@segfault.kiev.ua.>
Newsgroups: ftn.ru.unix.bsd
Subject: Мониторинг загрузки CPU в FreeBSD
SB> 2) показатели ssCpuUser, ssCpuSystem и ssCpuIdle. Тут все в порядке с
SB> цифрами, зато результат совершенно не соответствует действительности: если
SB> сервер загружен на 100% в течение 3 минут из 5 между вызовами mrtg, а
SB> конкретно в каждую 5-ю минуту простаивает, то получаем на графике
SB> практически нулевую загрузку. Это не устраивает совершенно.
sysctl kern.cp_time отдаёт 5 чисел. Hадо запомнить предыдущее состояние
этих счётчиков, просуммировать разницы и разделить каждую из разностей
на сумму разностей. Это и будет ответом.
Так как это можно сделать хоть на Сях, задержки не будет.
SB> 3) делал скрипты, снимающие статистику с vmstat и iostat. Результат не
SB> лучше, чем во втором способе. Даже хуже, потому что snmpd ухитряется каждый
SB> скрипт вызвать по 3 раза на каждое обращение к соответствующему OID
SB> (выявил, записывая результаты самим скриптом в лог) , что приводит к
SB> значительной задержке ответа.
Тот же kern.cp_time, но в скрипте - обработчике запроса надо суметь
не потерять предыдущие данные. Можно просто разность времени считать.
SB> 4) ну и наконец, мониторил la. Это вообще отдельная песня, потому что
SB> как соотнести la и загрузку процессора в % я вообще не понимаю :(
А оно и не будет напрямую соотноситься. До некоторой степени, будет
работать правило, что если la больше числа процессоров, то idle будет
нулевым. Hо точного соответствия не будет.
По большому счёту, la - это показатель тормозов при интерактивной работе
(это включает и, например, скорость ответа на команды сетевых сервисов).
Hичему другому он не соответствует.
-netch-