- BEST_PEOPLE (2:5077/15.22) ---------------------- BEST_PEOPLE (RU.UNIX.BSD) -
From : Valentin Nechayev 2:5020/400 24 Jan 01 16:52:34
Subj : [FreeBSD] Контроль загрузки процессора
-------------------------------------------------------------------------------
* Forwarded from area 'RU.UNIX.BSD'
From: netch@carrier.kiev.ua (Valentin Nechayev)
>> >Существует ли утилитка типа top или vmstat которая бы отслеживала
>> >загрузку процессора и памяти, но данные выводила бы не на экран,
>> >а в какой-нибудь файл?
Для начала - `sysctl -a | less' и внимательно рассмотреть.
Hе менее половины данных там будет.
AI> uptime показывает усредненную цифру, непонятно как вычисляющуюся и что,
AI> собственно говоря, показывающую.
Тебе неизвестно? В такой формулировке - согласен.;))
uptime показывает среднее за: 1, 5, 15 минут соответственно - там три числа -
количество процессов готовых к выполнению, то есть не находящихся в
какой-нибудь спячке. Если ты будешь снимать раз в минуту - вполне достаточно.
AI> Интервал, ну, скажем, 1 минута. Или 5. Как пожелаю.
AI> Записывать хотя бы idle для процессора и сумму Inact и Free для памяти.
AI> Желательно, конечно, чтбы это были не мгновенные снимки состояния
AI> системы,
AI> а средние цифры за период между записями в файл.
Idlt для процессора считается следующим образом. Из kvm получается количество
тиков statclock'а, в которых процесс был в каждом из пяти состояний.
В ядре есть инкрементальные счетчики этих тиков-при-состоянии.
Сняв в два разных момента значения этих счетчиков и разделив разность значений
счетчика idle на сумму по всем значениям разности этих значений, получаешь
долю процессора в idle, с учетом погрешности самого метода измерения
"вспышками statclock'а". Сколько у тебя времени проходит между снимками -
твое дело, но предел - 2**22 секунд (~2 месяца) для процессора.
Вот программка, снимающая значения счетчиков типов занятости процессора
и случившихся прерываний (частично передрана из systat/vmstat.c):