Диагностика ПО ТМИУС
Описание
Диагностика в ПО ТМИУС — это встроенный инструментарий для контроля работоспособности системы, выявления неисправностей оборудования и анализа протоколов обмена в реальном времени. Комплекс обеспечивает сквозную диагностику от нижнего уровня (контроллеры, модули ввода-вывода) до верхнего уровня (диспетчерский пункт), что позволяет быстро локализовать проблему и сократить время простоя.
Диагностика ПО ТМИУС через htop
Назначение
htop — интерактивный монитор процессов для Linux, который позволяет в реальном времени наблюдать за работой всех компонентов ПО ТМИУС: основного сервиса tm_server, потоков обработки данных, модулей связи и подсистем.
ПО ТМИУС — это многопоточное приложение, где каждый модуль работает как отдельный поток внутри процесса tm_server service. Именно поэтому htop с включённым режимом Tree view и Show custom thread names становится ключевым инструментом диагностики.
Что показывает 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 (освобождает место)
|
Рекомендуемая последовательность диагностики
- Запустить
htopна устройстве с ПО ТМИУС. - Нажать
F2→ Display options → выставить настройки из таблицы выше. - Нажать
F10для сохранения и выхода. - В основном окне:
F5— Tree view (древовидный вид);F6— сортировка (например, по%CPUилиTIME+);F4— фильтр по имени (например, ввестиtm_server, чтобы видеть только потоки ТМИУС);F3— поиск конкретного потока (например,arum_iec104).
- Обратить внимание на:
- потоки с высоким %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:*) дают мгновенное понимание, какой модуль работает, а какой — нет.