Jump to content

Диагностика ПО ТМИУС

From Центр документации - ТМИУС КП


Описание

Диагностика в ПО ТМИУС — это встроенный инструментарий для контроля работоспособности системы, выявления неисправностей оборудования и анализа протоколов обмена в реальном времени. Комплекс обеспечивает сквозную диагностику от нижнего уровня (контроллеры, модули ввода-вывода) до верхнего уровня (диспетчерский пункт), что позволяет быстро локализовать проблему и сократить время простоя.

Диагностика ПО ТМИУС через htop

Назначение

htop — интерактивный монитор процессов для Linux, который позволяет в реальном времени наблюдать за работой всех компонентов ПО ТМИУС: основного сервиса tm_server, потоков обработки данных, модулей связи и подсистем.

ПО ТМИУС — это многопоточное приложение, где каждый модуль работает как отдельный поток внутри процесса tm_server service. Именно поэтому htop с включённым режимом Tree view и Show custom thread names становится ключевым инструментом диагностики.


Diagnostics-htop-1

Что показывает htop по ТМИУС

На примере видно, что процесс tm_server service (PID 4468) порождает дерево потоков:

Поток Назначение
TEST_THREADS тестовые потоки
tm_send отправка данных
DB:ts.sqlite работа с БД телеметрии (ts — time series)
DB:ti.sqlite работа с БД тегов/информации
NEWS поток новостей/событий
CALC расчётный модуль
ntpget синхронизация времени
arum_iec104:inp приём по протоколу IEC 104
arum_iec104:out передача по протоколу IEC 104
arum_iec104:ou вспомогательный поток IEC 104
arum_avtomat модуль автоматики
HTTP:8081 веб-интерфейс
tm_data обработка телеметрических данных

Что можно диагностировать

  • Загрузка CPU по каждому потоку — колонка %CPU (например, CALC — 2.6%, tm_data — 1.9%) показывает, какой модуль наиболее нагружен.
  • Потребление памяти — RES (24.8% в примере) и VIRT (34916 KB).
  • Время работы потока — TIME+ (например, tm_data — 52:12.31, CALC — 3h06:26) — позволяет выявить «залипшие» или давно работающие потоки.
  • Состояние процессов — S (Sleeping) — все потоки находятся в ожидании, что нормально для работающей системы.
  • Аппаратные прерывания — hostapd (PID 4337) показывает работу Wi-Fi-интерфейса.

Настройка Display options в htop

Для удобной диагностики ПО ТМИУС рекомендуется следующая конфигурация Display options (клавиша F2 → Display options):

Опция Значение Зачем
Tree view [x] Древовидный вид — показывает иерархию потоков tm_server → модули. Всегда сортируется по PID (поведение htop 2)
Shadow other users' processes [ ] Не затемнять чужие процессы — все потоки видны одинаково
Hide kernel threads [x] Скрыть потоки ядра — они не относятся к ПО ТМИУС и засоряют вывод
Hide userland process threads [ ] Не скрывать потоки процессов — иначе не увидите модули ТМИУС
Display threads in a different color [x] Потоки выделяются другим цветом — легче визуально отделить модули от процессов
Show custom thread names [x] Критично — показывает имена потоков (tm_send, CALC, arum_iec104:inp и т.д.) вместо безликих tm_server
Show program path [x] Показывает полный путь: /usr/share/tm_cpps/tm_server service
Highlight program "basename" [ ] Подсветка имени программы — не обязательна
Merge exe, comm and cmdline in Command [ ] Не объединять — так виднее отдельные поля
Try to find comm in cmdline [x] Находит имя команды в командной строке
Try to strip exe from cmdline [x] Убирает путь к exe из командной строки
Highlight large numbers in memory counters [x] Подсветка больших чисел — сразу видно аномалии
Leave a margin around header [x] Отступ вокруг заголовка — визуальный комфорт
Detailed CPU time [ ] Детализация CPU по типам (System/IO-Wait/IRQ) — включать при глубокой диагностике
Count CPUs from 1 instead of 0 [ ] Нумерация CPU — по вкусу
Update process names on every refresh [ ] Обновление имён — не критично
Add guest time in CPU meter percentage [ ] Гостевое время — не актуально без виртуализации
Also show CPU percentage numerically [x] Полезно — помимо полосок показывает числа
Also show CPU frequency [ ] Частота CPU — при необходимости
Enable the mouse [x] Мышь — удобно для навигации
Update interval (in seconds) 1.5 Интервал обновления — оптимально для наблюдения за потоками
Highlight new and old processes [ ] Подсветка новых/старых процессов — для отладки старта
Highlight time (in seconds) 5 Время подсветки
Hide main function bar 1 1 — скрыть до нажатия ESC (освобождает место)

Рекомендуемая последовательность диагностики

  1. Запустить htop на устройстве с ПО ТМИУС.
  2. Нажать F2 → Display options → выставить настройки из таблицы выше.
  3. Нажать F10 для сохранения и выхода.
  4. В основном окне:
    • F5 — Tree view (древовидный вид);
    • F6 — сортировка (например, по %CPU или TIME+);
    • F4 — фильтр по имени (например, ввести tm_server, чтобы видеть только потоки ТМИУС);
    • F3 — поиск конкретного потока (например, arum_iec104).
  5. Обратить внимание на:
    • потоки с высоким %CPU — возможна перегрузка модуля;
    • потоки с большим TIME+ при малом %CPU — «залипшие» или циклические;
    • отсутствие ожидаемого потока (например, arum_iec104:inp) — модуль не запустился;
    • рост RES у какого-либо потока — утечка памяти.

Ключевые выводы для диагностики ТМИУС

  • htop с Tree view + Show custom thread names — обязательная конфигурация, иначе диагностика потоков ТМИУС невозможна.
  • Hide kernel threads обязателен — иначе вывод засоряется.
  • Hide userland process threads должен быть выключен — иначе вы не увидите модули ТМИУС.
  • Имена потоков (CALC, tm_data, arum_iec104:*, DB:*) дают мгновенное понимание, какой модуль работает, а какой — нет.