Вот такое приключилось сегодня: запустил обновляться OPNsense. Процесс шел относительно долго ( дольше чем обычно). В результате после загрузки роутера одно из двух ядер CPU уперлось в 100% утилизации. Нужно найти и “остановить”.
UPD 28.11.2023: Добавил решение через web-gui.
Поиск проблемы
Для начала глянем в top
-е кто же выедает CPU. В результате был найден python3.9
. Но это мало о чем может сказать,
ведь это интерпретатор и под ним может быть запущен любой скрипт. Тогда подключаем ps
(мы уже знаем кто "
приблизительно нам нужен, поэтому grep
-аем по подстроке python
):
|
|
Получает результат что-то вроде этого (не мой):
|
|
Как видно, нам нужен некто flowd_aggregate.py
. Исходя из названия, это какой-то скрипт, который используется вместе
с netflow
.
Решение
На форуме OPNsense, есть предложения по выключению IPv6
. К сожалению это мне не
помогло (хотя может быть в каких-то случаях и будет работать). Судя по тому, что в скрипте есть слово aggregate
скрипт
что-то считает. А так как netflow - это штука для сбора трафика, то есть
вероятность, что очистка данных поможет. Именно это шаг решил проблему в моем случае. Нужно выполнить:
|
|
После чего, чуть призадумавшись, OPNsense ответит в консоль кратное OK
. Нагрузка сразу упала.
Через web-gui
Еще один вариант для тех, у кого не настроен ssh
, а ctrl+v
в web-консоли proxmox не хочет работать, через web-gui.
Для этого нужно зайти по адресу /reporting_settings.php
и нажать кнопку Repair Netflow Data
. Буквально через пару
десятков секунд (в предупреждении говорится что все зависит от размера логов и мощности cpu) все заработает как нужно.