nwton Posted July 30, 2018 · Report post Есть многопроцессорный сервер (именно многопроцессорный с несколькими NUMA nodes). Хочется для некоторых процессов делать cpu pinning (affinity) на разные процессоры и привязывать туда же память для увеличения пиковой производительности отдельного приложения. Проблема в том, что иногда несколько процессов оказываются в рамках одной ноды и неожиданно решают что-то сделать одновременно, в результате - мужественно сражаются за один процессор. Ручной мониторинг загрузки CPU и MEM на отдельных нодах через top и numastat не подходит. Стандартные OID измеряют суммарную загрузку - если у меня на 4-х процессорном сервере в мониторинге показывается 25% нагрузки, то это может означать как нормальную ситуацию, так и проблему, что один процессор используется в полку, а остальные простаивают. percentage of user CPU time: .1.3.6.1.4.1.2021.11.9.0 percentages of system CPU time: .1.3.6.1.4.1.2021.11.10.0 percentages of idle CPU time: .1.3.6.1.4.1.2021.11.11.0 Total RAM used: .1.3.6.1.4.1.2021.4.6.0 Total RAM Free: .1.3.6.1.4.1.2021.4.11.0 Какие будут предложения по автоматизации мониторинга? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
snvoronkov Posted July 30, 2018 · Report post 37 минут назад, nwton сказал: Стандартные OID ТС, ты ОС обозначить забыл/забил. Нума, она много в где есть. Да, и стандартные ДЛЯ ЧЕГО? Что есть твой SNMP агент? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
s.lobanov Posted July 31, 2018 · Report post Задача решается очень легко с помощью zabbix-агента+zabbix-сервера Шаблон на 16 ядре в аттаче, если у вас меньше/больше, то подправьте по аналогии (для 4ёх ядерного удалите item-ы для cpu id#4-15 Будет отрисовываться график по формуле 100-загрузка (т.е. по факту рисуется idle) zbx_export_templates (2).xml Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
nwton Posted July 31, 2018 · Report post 19 hours ago, snvoronkov said: ТС, ты ОС обозначить забыл/забил. Нума, она много в где есть. Да, и стандартные ДЛЯ ЧЕГО? Что есть твой SNMP агент? Исправляюсь - система Linux Ubuntu 14.04/16.04 с штатным ядром (минимально 4.4 и до 4.15) SNMP агент - snmpd из штатных репозиториев, в параллель еще zabbix-agent. Что-нибудь добавить\заменить предложите? По SNMP в данный момент размышляю над OID с утилизацией по каждому ядру и потом суммировать, но это проще будет решить сразу через zabbix agent, а не дёргать snmp несколько раз, особенно с учётом того, что индексы могут измениться, но хочется целиком загрузку со всего процессора получать из одного OID - если такой есть. HOST-RESOURCES-MIB::hrProcessorLoad (.1.3.6.1.2.1.25.3.3.1.2) HOST-RESOURCES-MIB::hrDeviceIndex (.1.3.6.1.2.1.25.3.2.1.1) HOST-RESOURCES-MIB::hrDeviceDescr (.1.3.6.1.2.1.25.3.2.1.3) 5 hours ago, s.lobanov said: Шаблон на 16 ядре в аттаче Спасибо, как раз и думал в сторону суммирования использования каждого ядра system.cpu.util[N,idle] где N от 0 до 15 для первого процессора и N от 16 до 31 для второго процессора (и далее для всех остальных процессоров, и HT ядра если есть можно добавить сюда же) и выводить графики для каждого из процессоров отдельно, но может есть что-то еще в мониторинге zabbix agent или snmp или чего-то еще - сразу для всей ноды (всего процессора). Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
fox_m Posted July 31, 2018 · Report post 1. cat /proc/stat + скрипт, который обработает статистику 2. collectd+grafana Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
nwton Posted August 10, 2018 · Report post On 31.07.2018 at 8:32 AM, s.lobanov said: Задача решается очень легко с помощью zabbix-агента+zabbix-сервера Шаблон на 16 ядре в аттаче Вопрос к знатокам zabbix - как можно реализовать автоматизацию шаблонов в зависимости от количества ядер на хосте? Можно ли реализовать два calculated item на system.cpu.util[N,idle] где N от 0 до 15 для первого процессора и N от 16 до 31 - если мы получили system.cpu.num равное 32 - хотелось бы сделать циклом суммирование, но в zabbix такого нет? Или можно как-то назначить определенный темплейт на хост или выбирать один из доступных item в зависимости от значения system.cpu.num? Хочется красивости, а то текущий вариант не очень радует глаз. Настроил для каждого хоста сбор system.cpu.util каждого ядра через discovery LLD, дальше сделал нескольких шаблонов (для каждого процессора свой шаблон по количеству ядер) - организовал через calculated item подсчет суммы cpu.util для всех ядер именно этого процессора, дальше одинаковые для всех темплейтов отрисовка графиков и отправка алертов. Но для меня навешивание разных темплейтов в зависимости от процессора на хосте выглядит некрасиво, хочется объединить и автоматизировать их создание. У меня Zabbix 3.0 и 3.4. Quote collectd+grafana Графики красивые, но алертинг из графаны?? "шеф, у вас один из процессоров перегружен, а остальные простаивают" И намекните, как там сделать автоматизацию суммирования отдельных ядер по процессорам и шаблонизирования? По графане я совсем новичок. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...