Данные загрузки CPU

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Данные загрузки CPU

Непрочитанное сообщение Pattern » 2009-10-07 11:14:24

Нужно в лог сбросить текущее состояние CPU со статистикой по каждому ядру. Если запустить

Код: Выделить всё

$ top -P -s1 cpu
last pid:  1338;  load averages:  0.37,  0.44,  0.34  up 0+00:21:11    12:03:08
157 processes: 2 running, 155 sleeping
CPU 0:  3.0% user,  0.0% nice,  6.0% system,  0.0% interrupt, 91.0% idle
CPU 1: 13.5% user,  0.0% nice,  3.8% system,  0.0% interrupt, 82.7% idle
Mem: 377M Active, 375M Inact, 243M Wired, 25M Cache, 112M Buf, 970M Free
Swap: 1024M Total, 1024M Free
данные по загрузке ядер появляются только спустя 1 секунду.
Соответственно, если выполнить следующую команду

Код: Выделить всё

$ top -P -s1 cpu > top.info
$ less top.info
last pid:  1348;  load averages:  0.31,  0.32,  0.30  up 0+00:25:01    12:06:58
157 processes: 2 running, 155 sleeping

Mem: 378M Active, 461M Inact, 154M Wired, 25M Cache, 112M Buf, 971M Free
Swap: 1024M Total, 1024M Free
то никакой информации по процессору нет вообще.
Каким образом можно получить эти данные? Может есть какая то другая утилита?
на всякий случай

Код: Выделить всё

$ uname -a
FreeBSD pattern.work 7.2-RELEASE-p3 FreeBSD 7.2-RELEASE-p3 #1: Mon Aug 17 19:29:07 MSD 2009     pattern@pattern:/usr/obj/usr/src/sys/WORK  i386
Your bunny wrote: its not a bug, this is a feature, actually... ;)

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

sch
сержант
Сообщения: 282
Зарегистрирован: 2009-05-28 14:36:50
Откуда: Кишинев

Re: Данные загрузки CPU

Непрочитанное сообщение sch » 2009-10-07 11:39:37

man iostat

Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Re: Данные загрузки CPU

Непрочитанное сообщение Pattern » 2009-10-07 13:20:15

Спасибо sch за подсказку.
Только я чего то не пойму

Код: Выделить всё

$ man iostat
...
     cpu
           us      % of cpu time in user mode
           ni      % of cpu time in user mode running niced processes
           sy      % of cpu time in system mode
           in      % of cpu time in interrupt mode
           id      % of cpu time in idle mode
Поигравшись с ключиками, нашёл нужный вывод. Да вот результат вывода не очень впечатлил

Код: Выделить всё

$ top -P -s1 cpu
last pid:  1913;  load averages:  0.29,  0.31,  0.29  up 0+02:20:31  14:02:28
185 processes: 1 running, 184 sleeping
CPU 0: 11.3% user,  0.0% nice,  0.0% system,  0.0% interrupt, 88.7% idle
CPU 1:  7.5% user,  0.0% nice, 15.7% system,  0.0% interrupt, 76.9% idle
Mem: 625M Active, 657M Inact, 191M Wired, 440K Cache, 112M Buf, 517M Free
Swap: 1024M Total, 1024M Free

$ iostat -dC -t proc
            cpu
 us ni sy in id
  9  0  6  0 85
Во первых, я не нашёл как вывести инфу по каждому ядру.
Во вторых, выводится практически всегда один и тот же результат. И если его сравнить со средним значением по обим ядрам top'а

Код: Выделить всё

$ top -s1 cpu
last pid:  1945;  load averages:  0.41,  0.32,  0.29  up 0+02:33:40  14:15:37
186 processes: 2 running, 184 sleeping
CPU:  4.1% user,  0.0% nice,  5.6% system,  0.0% interrupt, 90.3% idle
Mem: 627M Active, 688M Inact, 280M Wired, 440K Cache, 112M Buf, 395M Free
Swap: 1024M Total, 1024M Free

$ iostat -dC -t proc
            cpu
 us ni sy in id
  9  0  6  0 84
то результат не очень то похож на правду. Можно конечно сослаться на погрешность, но к сожалению это не совсем то, что я хотел получить.
Может я не все ключи учел или вообще не правильно вывожу данные?
Your bunny wrote: its not a bug, this is a feature, actually... ;)

sch
сержант
Сообщения: 282
Зарегистрирован: 2009-05-28 14:36:50
Откуда: Кишинев

Re: Данные загрузки CPU

Непрочитанное сообщение sch » 2009-10-07 15:28:52

похоже iostat не умеет для каждого ядра отдельно показывать нагрузку - выдает нечто средневзвешенное

Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Re: Данные загрузки CPU

Непрочитанное сообщение Pattern » 2009-10-07 15:34:26

не уже ли больше в системе нет никакой тулзы, которая это умеет делать? TOP же как то выхватвает эти данные...
Your bunny wrote: its not a bug, this is a feature, actually... ;)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Данные загрузки CPU

Непрочитанное сообщение paradox » 2009-10-07 20:16:30

ну можно еще попробовать в vmstat поискать

Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Re: Данные загрузки CPU

Непрочитанное сообщение Pattern » 2009-10-07 21:22:09

paradox, это именно то что нужно

Код: Выделить всё

$ vmstat -Pp proc
 procs      memory      page                      faults         cpu0     cpu1
 r b w     avm    fre   flt  re  pi  po    fr  sr   in    sy   cs us sy id us sy id
 0 0 0   1626M  2604M   320   1   1   0   299   0   18 13521 1691  6 10 84  7  7 86
$ vmstat -Pp proc | awk 'NR==3 {print $15, $16, $18, $19}'
6 10 7 7
Спасибо за помощь! :drinks:
Your bunny wrote: its not a bug, this is a feature, actually... ;)

Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Re: Данные загрузки CPU

Непрочитанное сообщение Pattern » 2009-10-07 21:41:11

Блин, рано обрадовался

Код: Выделить всё

$ vmstat -Pp proc | awk 'NR==3 {print $15, $16, $18, $19}'
6 10 7 7
$ vmstat -Pp proc | awk 'NR==3 {print $15, $16, $18, $19}'
6 10 7 7
$ vmstat -Pp proc | awk 'NR==3 {print $15, $16, $18, $19}'
6 10 7 7
$ vmstat -Pp proc -w 1
 procs      memory      page                      faults          cpu0     cpu1
 r b w     avm    fre   flt  re  pi  po    fr  sr   in    sy   cs us sy id us sy id
 2 0 0   1626M  2603M   263   0   1   0   247   0   15 13658 1711  6 10 84  7  7 86
 1 0 0   1626M  2603M     1   0   0   0     0   0   15 12460 1854  7  8 85  4  5 91
 1 0 0   1631M  2599M  1060   0   0   0     1   0    5 13519 1630  8  8 83  1  4 94
 0 0 0   1626M  2603M     1   0   0   0  1061   0    0 15526 1702  4  4 93  5 16 78
Такое впечатление, что он запускается с умолчальными какими то данными. Как быть?
Your bunny wrote: its not a bug, this is a feature, actually... ;)

paradox
проходил мимо
Сообщения: 11620
Зарегистрирован: 2008-02-21 18:15:41

Re: Данные загрузки CPU

Непрочитанное сообщение paradox » 2009-10-07 23:36:50

что значит умолчальными

и что значит статистика по ядру

я просто не совсем понимаю что ты хочешь за статистику

Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Re: Данные загрузки CPU

Непрочитанное сообщение Pattern » 2009-10-08 0:06:43

Есть 2-х ядерный процессор с ядрами CPU0 и CPU1. TOP показывает на каждом из них по 5 параметров

Код: Выделить всё

CPU 0: 11.3% user,  0.0% nice,  0.0% system,  0.0% interrupt, 88.7% idle
CPU 1:  7.5% user,  0.0% nice, 15.7% system,  0.0% interrupt, 76.9% idle
Меня интересует только пользовательская (user) и системная (system) нагрузки каждого ядра.
vmstat показывает эти данные, но каждый раз при запросе (как я показал выше)

Код: Выделить всё

vmstat -Pp proc | awk 'NR==3 {print $15, $16, $18, $19}'
выводятся одни и те же данные в последовательности cpu0_user cpu0_system cpu1_user cpu1_system

Код: Выделить всё

6 10 7 7
Я и решил, что это какие то данные по умолчанию, так как не может такого быть, чтобы при 10 подряд посланных запросов выводились одни и тебе же данные. При чем эти же данные данные показываются в первой строке запроса
vmstat -Pp proc -w 1
2 0 0 1626M 2603M 263 0 1 0 247 0 15 13658 1711 6 10 84 7 7 86
и только последующие показывают реальное состояние
1 0 0 1626M 2603M 1 0 0 0 0 0 15 12460 1854 7 8 85 4 5 91
1 0 0 1631M 2599M 1060 0 0 0 1 0 5 13519 1630 8 8 83 1 4 94
0 0 0 1626M 2603M 1 0 0 0 1061 0 0 15526 1702 4 4 93 5 16 78
То есть грубо говоря, этим запросом

Код: Выделить всё

vmstat -Pp proc | awk 'NR==3 {print $15, $16, $18, $19}'
я получаю не актуальную нагрузку на процессор, а какие кэшированные(???) данные, а нужно получить именно нагрузку на данный момент.
Your bunny wrote: its not a bug, this is a feature, actually... ;)

jammin
ефрейтор
Сообщения: 55
Зарегистрирован: 2008-04-25 8:45:31

Re: Данные загрузки CPU

Непрочитанное сообщение jammin » 2009-10-08 11:53:20

У vmstat есть ключик -с.
Юзайте

Код: Выделить всё

vmstat -Pp proc -с 2 | awk 'NR==4 {print $15, $16, $18, $19}'

Аватара пользователя
Pattern
сержант
Сообщения: 180
Зарегистрирован: 2007-08-30 23:45:54
Откуда: Санкт-Петербург
Контактная информация:

Re: Данные загрузки CPU

Непрочитанное сообщение Pattern » 2009-10-08 11:56:40

Да, это то что нужно. Большое спасибо всем за помощь!
Your bunny wrote: its not a bug, this is a feature, actually... ;)