О работе с большим количеством сигналов

В этой статье мы ответим на вопрос, какая примерная загрузка будет у ARM миникомпьютера при работе с большим количеством сигналов.
Для проведения эксперимента возьмем самый маленький миникомпьютер, который есть в наличии - nanopi neo с 512 Мб оперативной памяти.
ОРС-сервер Меркурий 230 работает с 58 счетчиками, связь "поверх TCP", количество сигналов - 2021.
ОРС-сервер СЭТ-4ТМ работает с 88 счетчиками, связь "поверх TCP", количество сигналов - 4228.
Данные от ОРС-серверов поступают в modbus-slave по протоку ОРС UA. Так же modbus-slave ведет опрос по протоколу Modbus TCP, количество сигналов 1918.
Суммарное количество сигналов, обрабатываемых modbus-slave (opctomb) - 8167.
ОРС-сервер Меркурий 230 и ОРС-сервер СЭТ-4ТМ получают данные от программных эмуляторов счетчиков. modbus-slave получает данные от других эмуляторов modbus-slave. Этим достигается высокая частота изменения значений переменных.
К modbus-slave подключено 3 клиента Modbus TCP и 2 клиента МЭК-104. Для передачи клиентам сконфигурированы все 8167 сигналов.
Частота обновления аналоговых измерений примерно 500 в секунду.
Теперь конкретные цифры загрузки:
_   _                   ____  _   _   _
| \ | | __ _ _ __   ___ |  _ \(_) | \ | | ___  ___
|  \| |/ _` | '_ \ / _ \| |_) | | |  \| |/ _ \/ _ \
| |\  | (_| | | | | (_) |  __/| | | |\  |  __/ (_) |
|_| \_|\__,_|_| |_|\___/|_|   |_| |_| \_|\___|\___/


Welcome to ARMBIAN 5.38 stable Ubuntu 16.04.4 LTS 4.14.18-sunxi
System load:   1.07 0.76 0.90   Up time:       3 days
Memory usage:  30 % of 493MB    IP:            192.168.42.25
CPU temp:      44°C
Usage of /:    73% of 1.7G


Температура процессора 44°C. На процессор наклеен мини радиатор 1Х1,5 см. Загрузка процессора около 30 %.

vova@nanopineo:~$ top
top - 14:19:52 up 3 days, 23:01,  1 user,  load average: 1.47, 1.14, 1.12
Tasks:  99 total,   1 running,  57 sleeping,   0 stopped,   0 zombie
%Cpu(s): 30.0 us,  6.2 sy,  0.0 ni, 62.1 id,  0.0 wa,  0.0 hi,  1.7 si,  0.0 st
KiB Mem :   505164 total,    77944 free,   150900 used,   276320 buff/cache
KiB Swap:   252576 total,   252576 free,        0 used.   319308 avail Mem

PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
30789 root      20   0  219368  55396   3432 S  91.7 11.0  38:40.13 opctomb
1081 root      20   0  163644  33596   3080 S  33.1  6.7 683:22.60 set4opcd
1147 root      20   0  114336  24012   2820 S  19.9  4.8   1086:39 merc230opcd
21718 vova      20   0    6564   2632   2228 R   0.7  0.5   0:00.09 top
7 root      20   0       0      0      0 S   0.3  0.0   5:37.85 ksoftirqd/0

Оператиной памяти занято 151 Мб.

vova@nanopineo:~$ free
total        used        free      shared  buff/cache   available
Mem:         505164      151024       77820       11088      276320      319184
Swap:        252576           0      252576