Загрузка процессора Mikrotik как посмотреть

Обновлено: 21.11.2024

Всегда много говорят об использовании ЦП Mikrotik RouterOS. Я хотел уделить несколько минут рассмотрению реального примера и объяснить некоторые тонкости при обсуждении использования процессора Mikrotik.

Давайте поговорим о рассматриваемом маршрутизаторе. Это CCR1016-12s-1S+. Это 16-ядерный маршрутизатор с частотой 1,2 ГГц на ядро ​​и 2 ГБ оперативной памяти на базе тайлекса. В настоящее время он использует 1 764 849 маршрутов IPv4. Есть два канала BGP транзитного провайдера, несколько прямых одноранговых узлов, одноранговый узел Internet Exchange с серверами с двойным маршрутом. Маршрутизатор обрабатывает чуть более 3 гигабайт маршрутизируемого трафика в часы пик. Большая часть трафика поступает в сети VLAN от коммутатора Cisco к порту SFPPlus.

Одна из первых вещей, которую люди включают, — это общая загрузка ЦП в Winbox. Мне нравится думать об этом как об общем виде процессоров на этом маршрутизаторе. Имейте в виду, что их 16.

Следующее, что нужно исследовать, когда дело доходит до ЦП, — это открыть System..resources. Когда есть часы на процессоре.

Откроется экран, который выглядит следующим образом.

О боже, у нас 100% процессор! Необходимо заменить этот маршрутизатор как можно скорее! Успокойтесь, помните, у вас 16 ядер. Итак, почему этот ЦП загружен на 100 % и какие последствия это имеет?

Помните ранее, когда мы говорили о BGP? В Mikrotik BGP не является многоядерным процессом. Это означает, что BGP ограничен только одним ядром для выполнения своей работы. Поскольку всегда есть маршруты, которые удаляются и повторно добавляются в таблицу маршрутизации, это загруженный процесс. Происходит много математических расчетов. Ключевым моментом является то, что это ожидаемое поведение на маршрутизаторе, на котором работает несколько одноранговых узлов BGP, таких как этот. Это не плохо, но не идеально. Использование большего количества ядер в BGP — это не решение. Лучше всего оптимизировать процесс, как это было сделано в V7.

Если мы расширим окно ЦП, мы заметим, что другие процессы поддерживают многоядерность и.или распределяют свою нагрузку между разными ядрами.

Как видите, мы в довольно хорошей форме. У нас есть несколько процессоров с загрузкой выше 50%, но только несколько. Я буду постоянно напоминать вам, что у нас их 16.

С переходом Mikrotik на процессоры ARM мы увидим огромные различия между ними и RotuerOS7. Мы увидим меньше ядер, но лучшее использование этих ядер. Новый 2004 со всеми SFP и 2 портами по 25 Гб имеет только 4 процессора.

Поэтому в следующий раз, когда вы посмотрите на маршрутизатор, обратите внимание на то, насколько загружена вся архитектура ЦП, а не только один ЦП.

Инструмент профиля Mikrotik позволяет управлять использованием процессора и избегать накладных расходов на процессор маршрутизатора. С сотнями функций routerOS, доступных на маршрутизаторах Mikrotik, нет ничего необычного в том, что сетевые администраторы активируют так много функций на маршрутизаторе, даже те, которые не нужны.

Одной из функций, доступных в разделе инструментов mikrotik routerOS, является профилировщик. эта функция позволяет вам видеть использование процессора для всех процессов, запущенных в routerOS. Используя инструмент профиля микротика, сетевой администратор сможет определить, какой процесс использует большую часть ресурсов ЦП.

Как использовать инструмент профиля Mikrotik

Чтобы узнать, какой из процессов routeros использует ресурсы ЦП, просто щелкните инструмент > профиль. Выберите процессор и нажмите «Пуск». Кроме того, вы можете выбрать «все» и нажать «Пуск». Это позволит профилировать все активные использования ЦП для доступного ядра в системе. См. пример ниже:

Вы можете использовать опцию total, чтобы получить общую загрузку ЦП.

Высокая загрузка ЦП может снизить производительность сетевого устройства, что приведет к замедлению работы в Интернете. Используя инструмент профиля микротика для определения причины такой медлительности, внимание можно сосредоточить на функции RouterOS, отвечающей за высокую загрузку процессора.

Например, если результат показывает высокую загрузку ЦП, вызванную несколькими правилами фильтрации брандмауэра, эти правила можно изменить. Несколько правил фильтрации брандмауэра могут снизить производительность маршрутизатора.

Если вам понравился этот урок, подпишитесь на этот блог, чтобы получать мои сообщения по электронной почте. Также подпишитесь на мой канал YouTube, лайкните мою страницу в Facebook и следите за мной в Twitter.

Сценарий измеряет уровень использования процессора устройства MikroTik через определенный период времени.Вычисляет среднюю загрузку процессора. Отправляет уведомление по электронной почте или сообщением в Telegram при превышении порога загрузки ЦП, а также динамику загрузки ЦП.

Кроме того, скрипт можно использовать для мониторинга загрузки процессора и записи результатов в журнал устройства MikroTik. Вы можете добавить возможность сохранения данных в файл.

Контент

Описание скрипта

Укажите порог превышения (процент загрузки ЦП) — DeviceAverageLoadThreshold и количество измерений — NumberOfMeasurements. Интервал измерения 2 секунды. При превышении порогового значения в сообщении будут указаны результаты измерений для оценки динамики нагрузки.

Не устанавливайте слишком большое значение DeviceAverageLoadThreshold — это среднее значение, начните с 40% и, если устройство не будет вызывать проблем во время этой нагрузки, постепенно увеличивайте порог скрипта.

Если при запуске скрипта «Проверка загрузки процессора MikroTik» будет обнаружен уже запущенный экземпляр скрипта, скрипт не будет запускаться дважды, а в журнале устройства будет отображено предупреждение.

При каждом запуске скрипта, даже если пороговое значение AverageCPULoad не превышено, в журнал устройства записывается такая строка:

Это полезно для тестирования, но вы можете закомментировать или удалить эту строку:

Скрипт отправляет уведомление на электронную почту и сообщение Telegram с помощью функций:

Сообщение содержит:

Если вам не нужен какой-либо из типов уведомлений, удалите раздел звонка из текста скрипта.

Создать сценарий

Для запуска скрипта необходимы права: чтение, запись, проверка, политика.

Добавить скрипт в планировщик

Для запуска скрипта необходимы права: чтение, запись, проверка, политика.

В скрипте задачи в переменной ScriptName укажите имя скрипта, в примере CPUOverloadCheck. Это необходимо для проверки уже запущенного скрипта.

В обычных случаях интервал проверки составляет 5 минут, но вы можете уменьшить интервал проверки, чтобы лучше диагностировать устройство.

💡 Совет: если вы используете много скриптов, чтобы уменьшить одновременную нагрузку, добавьте смещение к параметру Start Time (см. скриншот).

🟢 Как создать скрипт — проверка загрузки процессора устройства MikroTik и отправка уведомления по электронной почте или сообщения в Telegram — обсуждалось в этой статье. Теперь вы можете увеличить контроль над устройствами MikroTik, и перегрузка процессора устройства не будет происходить неожиданно. Однако, если у вас возникнут какие-либо проблемы при настройке скрипта, не стесняйтесь писать в комментариях. Я постараюсь помочь.

✅ Скрипт проверен: hAP ac lite [RouterBOARD 952Ui-5ac2nD], RouterOS 6.47.8 (stable).

Устройства с большим количеством собираемых данных достигают 100 % загрузки ЦП во время сбора данных. Это может быть особой проблемой, когда эти устройства переходят в режим быстрого обновления. Обычно кратковременный всплеск загрузки ЦП каждый нормальный интервал сбора не является проблемой. Сбор данных ЦП должен отображать загрузку ЦП из окружающей среды, а не загрузку ЦП, вызванную сбором данных.

Текст был успешно обновлен, но возникли следующие ошибки:

andrewhodel прокомментировал 24 ноября 2021 г.

Я предполагал, что он использует несколько наносекунд для расчета нагрузки, он уже усредняет ее, но Mikrotik не документирует интервал.

Здесь вы можете увидеть предварительные отчеты скрипта с 10 по 15:

А этот скрипт сообщает от 20 до 35:

Это доказывает, что для этого интервала измерения (недокументированного) предварительный сценарий на самом деле предназначен для такого короткого интервала, что он сообщает о более низкой загрузке ЦП.

Мы знаем это наверняка, поскольку скрипт сборщиков, выполняющий эту команду, запускается каждые 60 секунд, а новый скрипт "avgCpuCollector" запускается каждые 4 секунды.

andrewhodel прокомментировал 24 ноября 2021 г.

Его можно легко усреднить с помощью:

Это самый простой способ сделать это, но, честно говоря, Mikrotik должен задокументировать, выполняется ли команда /system resource get cpu-load в течение одного цикла или усредняет определенное число.Тот факт, что значения ниже при запуске в сценарии сборщиков, является доказательством злоупотребления служебным положением.

andrewhodel прокомментировал 24 ноября 2021 г.

mthoodlum прокомментировал 24 ноября 2021 г.

Я не думаю, что нам нужен скользящий средний показатель загрузки ЦП. Мы хотим измерения в реальном времени. Мы не хотим, чтобы процесс сбора информации о загрузке ЦП влиял на значение, поэтому мы не должны получать значение одновременно с выполнением множества других действий.

andrewhodel прокомментировал 24 ноября 2021 г.

Вы действительно не понимаете, что говорите, и не читали документацию коллектора.

Нет абсолютно никакой цели в сборе измерений за один цикл, вы должны измерить температуру процессора и температуру окружающей среды и знать предварительно протестированные входные значения для всех коэффициентов использования процессора, а затем завернуть сам чип в пластиковый корпус с рабочей диапазоны для окружающей среды (температура, давление и т. д.), но субатомные частицы могут изменить это.

Вы имеете дело с компанией, которая пишет код для продукта, который даже не документирует количество циклов (Mikrotik), чего вы ожидаете?

Читайте также: