# Wb-mqtt-db грузит процессор

**URL:** <https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582>\
**Category:** Без категории\
**Created:** [February 1, 2026, 7:57pm UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582 "2026-02-01T19:57:46Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![bulava92](https://avatars.discourse-cdn.com/v2/letter/b/5fc32e/32.png) [@bulava92](https://support.wirenboard.com/u/bulava92)\
**Post date:** [February 1, 2026, 7:57pm UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/1 "2026-02-01T19:57:46Z")

</div>

добрый день  
процесс main постоянно 50% cpu занимает, только на данном контроллере  
увеличил лимит со 100 тыс до 500 тыс, но это временная мера

_приложен диагностический архив, доступен только сотрудникам поддержки_
 (433,6 КБ)

```auto
root@wirenboard-ASOI7OWQ:~# pid=$(systemctl show -p MainPID --value wb-mqtt-db)
echo "wb-mqtt-db PID=$pid"
top -H -p "$pid"
wb-mqtt-db PID=5637
top - 19:53:22 up 5 days, 2:33, 1 user, load average: 3.08, 2.74, 2.48
Threads: 7 total, 0 running, 7 sleeping, 0 stopped, 0 zombie
%Cpu(s): 22.5 us, 11.4 sy, 0.0 ni, 64.8 id, 0.0 wa, 0.0 hi, 1.3 si, 0.0 st
MiB Mem : 2012.9 total, 130.1 free, 276.8 used, 1606.1 buff/cache
MiB Swap: 256.0 total, 255.5 free, 0.5 used. 1671.6 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
5637 root 20 0 70644 13400 5868 S 45.2 0.7 0:54.35 main
5641 root 20 0 70644 13400 5868 S 4.0 0.7 0:04.59 mosquitto loop
5643 root 20 0 70644 13400 5868 S 1.7 0.7 0:02.39 backend: messag
5640 root 20 0 70644 13400 5868 S 1.0 0.7 0:01.70 driver: event l
5642 root 20 0 70644 13400 5868 S 0.0 0.7 0:00.00 backend: reques
root@wirenboard-ASOI7OWQ:~# DB=/mnt/data/var/lib/wirenboard/db/data.db
sqlite3 “$DB” "
with mx as (select max(timestamp) as mx from data)
select
count() as rows_last_minute,
round(count()/60.0,2) as rows_per_sec
from data, mx
where timestamp >= mx.mx-60000;
"
165|2.75
root@wirenboard-ASOI7OWQ:~# DB=/mnt/data/var/lib/wirenboard/db/data.db
sqlite3 “$DB” "
with mx as (select max(timestamp) as mx from data)
select c.device, count(*) as cnt
from data d
join channels c on c.int_id=d.channel, mx
where d.timestamp >= mx.mx-600000
group by c.device
order by cnt desc
limit 20;
"
OU4|590
ch_hp16mirm_2|170
OU3|79
OU2|74
[DTV1]|71
wb-gpio|54
metrics|46
wb-adc|34
Hisense_HCPC_H2M1C_32|33
pvu|25
IN3|24
US2|16
US1|16
system __networks__ 8a073272-55db-4552-ab44-269999106b52|11
SM1|11
RL4|11
IN27|11
DTV2|9
DM13|9
system __networks__ d12c8d3c-1abe-4832-9b71-4ed6e3c20885|8
root@wirenboard-ASOI7OWQ:~# systemctl stop wb-mqtt-db
sleep 10
top -b -n1 | head -20
systemctl start wb-mqtt-db
top - 19:54:17 up 5 days, 2:34, 1 user, load average: 2.19, 2.55, 2.43
Tasks: 174 total, 1 running, 173 sleeping, 0 stopped, 0 zombie
%Cpu(s): 21.5 us, 18.3 sy, 0.0 ni, 60.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 2012.9 total, 138.9 free, 269.0 used, 1605.1 buff/cache
MiB Swap: 256.0 total, 255.5 free, 0.5 used. 1679.4 avail Mem

```

---

<div class="post-metadata">

**Author:** ![bulava92](https://avatars.discourse-cdn.com/v2/letter/b/5fc32e/32.png) [@bulava92](https://support.wirenboard.com/u/bulava92)\
**Post date:** [February 2, 2026, 2:57pm UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/4 "2026-02-02T14:57:58Z")

</div>

никак не получается сбросить нагрузку  
везде по 3-5% занимает, а тут 48-50%

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [February 2, 2026, 3:04pm UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/5 "2026-02-02T15:04:03Z")

</div>

Добрый день.

> [@bulava92](#):
>
> процесс main постоянно 50% cpu занимает, только на данном контроллере

Целесообразно оценить **количество** изменений (публикаций) топиков в секунду.  
Как вижу из конфига - пишется вообще все. Просто посмотрите, сколько публикуется топиков в минуту - это проще всего.

```auto
timeout --foreground -s 15 60s mosquitto_sub -v -t "/devices/#" |wc -l

```

---

<div class="post-metadata">

**Author:** ![bulava92](https://avatars.discourse-cdn.com/v2/letter/b/5fc32e/32.png) [@bulava92](https://support.wirenboard.com/u/bulava92)\
**Post date:** [February 2, 2026, 3:16pm UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/6 "2026-02-02T15:16:03Z")

</div>

![Снимок экрана 2026-02-02 в 18.08.51](https://support.wirenboard.com/uploads/default/original/3X/c/2/c2e3e8d077c562b92f8dea93ef5e3fa7522aa789.png)

с проблемного контроллера

```auto
root@wirenboard-ASOI7OWQ:~# timeout --foreground -s 15 60s mosquitto_sub -v -t "/devices/#" |wc -l

11948

```

с другого контроллера

```auto
root@wirenboard-AAA4DILM:~# timeout --foreground -s 15 60s mosquitto_sub -v -t "/devices/#" |wc -l

6152

```

настройки везде одинаковые  
есть контроллеры даже старее чем проблемный, но и там нагрузка 3-5%, а не 50%

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [February 2, 2026, 3:32pm UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/7 "2026-02-02T15:32:04Z")

</div>

> [@bulava92](#):
>
> `11948`

Если исключить из истории половину топиков - то нагрузка меняется?

---

<div class="post-metadata">

**Author:** ![bulava92](https://avatars.discourse-cdn.com/v2/letter/b/5fc32e/32.png) [@bulava92](https://support.wirenboard.com/u/bulava92)\
**Post date:** [February 2, 2026, 3:40pm UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/8 "2026-02-02T15:40:39Z")

</div>

подскажите, пожалуйста, ссылку на инструкцию или команду, как это сделать

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [February 2, 2026, 4:56pm UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/9 "2026-02-02T16:56:50Z")

</div>

Вот подробное описание конфигурирования: [GitHub - wirenboard/wb-mqtt-db: Wiren Board database logger](https://github.com/wirenboard/wb-mqtt-db)

---

<div class="post-metadata">

**Author:** ![bulava92](https://avatars.discourse-cdn.com/v2/letter/b/5fc32e/32.png) [@bulava92](https://support.wirenboard.com/u/bulava92)\
**Post date:** [February 10, 2026, 10:24am UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/10 "2026-02-10T10:24:57Z")

</div>

по ходу какие-то системные топики грузят базу

```auto
  PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND    
1917 root 20 0 172448 15552 6796 S 39.0 0.8 9:50.45 wb-mqtt-serial                                                                           
4525 1000 20 0 212176 100856 43848 S 26.6 4.9 7:00.10 node-red
18510 root 20 0 69196 10840 5348 S 18.0 0.5 0:04.05 main
2081 mosquit+ 20 0 14424 10028 4920 S 10.8 0.5 2:34.44 mosquitto
7786 root 20 0 7452 4024 3556 S 7.5 0.2 1:42.72 openvpn
18559 root 20 0 29080 8092 6668 S 5.9 0.4 0:00.18 curl      

```

перечислил только топики устройств и нагрузка стала намного слабее. вопрос в том как понять какие системные топики грузят базу?

```auto
root@wirenboard-ASOI7OWQ:~# cat /etc/wb-mqtt-db.conf
{
    "database": "/var/lib/wirenboard/db/data.db",
    "debug": false,
    "groups": [
        {
            "channels": [
                "ch_hp16mirm_2/+",
                "CO2.1/+",
                "CO2.2/+",
                "CO2.3/+",
                "DM1/+",
                "DM2/+",
                "DM3/+",
                "DM4/+",
                "DM5/+",
                "DM6/+",
                "DM7/+",
                "DM8/+",
                "DM9/+",
                "DM10/+",
                "DM11/+",
                "DM12/+",
                "DM13/+",
                "DM14/+",
                "DTV2/+",
                "DTV3/+",
                "DTV4/+",
                "DTV5/+",
                "hisense_HCPC_H2M1C_32/+",
                "IN3/+",
                "IN5/+",
                "IN6/+",
                "IN7/+",
                "IN8/+",
                "IN9/+",
                "IN10/+",
                "IN11/+",
                "IN12/+",
                "IN13/+",
                "IN15/+",
                "IN16/+",
                "IN17/+",
                "IN18/+",
                "IN19/+",
                "IN20/+",
                "IN21/+",
                "IN22/+",
                "IN23/+",
                "IN24/+",
                "IN25/+",
                "IN26/+",
                "IN27/+",
                "IN28/+",
                "IN29/+",
                "IN40/+",
                "OU2/+",
                "OU3/+",
                "OU4/+",
                "pvu/+",
                "RL1/+",
                "RL2/+",
                "RL3/+",
                "RL4/+",
                "RL5/+",
                "RL6/+",
                "RL8/+",
                "RL9/+",
                "RL11/+",
                "RL12/+",
                "RL13/+",
                "SM1/+",
                "US1/+",
                "US2/+",
                "wb-w1/+",
                "[DTV1]/+",
                "wb-adc/+"
            ],
            "max_burst": 30,
            "min_interval": 120,
            "min_unchanged_interval": 1200,
            "name": "all",
            "values": 10000,
            "values_total": 100000
        }
    ]
}root@wirenboard-ASOI7OWQ:~# 

```

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [February 10, 2026, 10:30am UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/11 "2026-02-10T10:30:27Z")

</div>

Я не понимаю термина “грузят” к сожалению…  
Какие “системные” имеете в виду?

То есть: как именно конфигурируете порядок и количество записей для (какого-то) топика, что работает не так как сконфигурировано?

---

<div class="post-metadata">

**Author:** ![bulava92](https://avatars.discourse-cdn.com/v2/letter/b/5fc32e/32.png) [@bulava92](https://support.wirenboard.com/u/bulava92)\
**Post date:** [February 10, 2026, 10:36am UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/12 "2026-02-10T10:36:07Z")

</div>

когда в топиках в настройках выбрано +/+ то нагрузка на cpu 45-50% согласно top  
сейчас отфильтровал только по подключенным устройствам и нагрузка 10-15% всего. то бишь отключены только топики которые системные - сеть, версия системы и прочие остальные

не понимаю в чем именно дело, но если сделать +/+ то нагрузка сильно возрастает, и стала она возрастать после обновления системы до актуальной версии недели 2 назад

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [February 10, 2026, 10:42am UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/13 "2026-02-10T10:42:07Z")

</div>

> [@bulava92](#):
>
> когда в топиках в настройках выбрано +/+ то нагрузка на cpu 45-50% согласно top

Сколько при этом публикаций от топиков? В минуту, например?

Иными словами - если вы записываете в базу несколько тысяч записей - то это вполне ожидаемо.

---

<div class="post-metadata">

**Author:** ![bulava92](https://avatars.discourse-cdn.com/v2/letter/b/5fc32e/32.png) [@bulava92](https://support.wirenboard.com/u/bulava92)\
**Post date:** [February 10, 2026, 10:47am UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/14 "2026-02-10T10:47:04Z")

</div>

так я не записываю  
система записывает  
ранее было 165 записей в минуту  
на данный момент “одобрены” только подключенные к wb устройства и нагрузка низкая

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [February 10, 2026, 11:35am UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/15 "2026-02-10T11:35:52Z")

</div>

> [@bulava92](#):
>
> так я не записываю  
> система записывает

Система записывает ровно так как сконфигурировано. Я например для контролов в которых излишне (на мой взгляд) частые изменения считаю “max\_burst” и определяю его.  
Не для всех каналов а расчет - для каждого.  
Просто пример:

```auto
        {
            "channels": [
                "wb-map6s_27/+",
                "SocketRelay_2floor/+",
                "DaniilComp/energy",
                "Refrigerator/energy",
                "main_powermeter/+"
            ],
            "max_burst": 4,
            "min_interval": 60,
...
        },

```

> [@bulava92](#):
>
> ранее было 165 записей в минуту

А чем они генерировались? То есть - какой источник? И сколько ожидается от этого источника изменений?

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [February 10, 2026, 4:24pm UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/16 "2026-02-10T16:24:54Z")

</div>

Я перечитал снова тему, попробовал воспроизвести у себя. Да, при большом количестве записей (разрешенных) сервис потребляет ресурсы. Это в общем ожидаемо.  
Однако при двух сотнях записей в минуту - гораздо меньше. Как снимали статистику?

---

<div class="post-metadata">

**Author:** ![bulava92](https://avatars.discourse-cdn.com/v2/letter/b/5fc32e/32.png) [@bulava92](https://support.wirenboard.com/u/bulava92)\
**Post date:** [February 10, 2026, 4:31pm UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/17 "2026-02-10T16:31:17Z")

</div>

снимал статистику с помощью команд, которые предложил гпт, в первом сообщении тут  
на данный момент в базу пишутся только каналы всех подключенных в wb-mqtt-serial устройств и нагрузка до 10-12%. стоит убрать ограничение (сделать +/+) - сразу до 45-50% возрастает

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [February 11, 2026, 9:57am UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/18 "2026-02-11T09:57:31Z")

</div>

Понятно, да и воспроизводится, вполне.  
Например

```auto
//TestSin_value_forTCP.js

// Цель - получить три топика со значениями (ну, пусть от-32767 до 32767)
//Значения должны меняться синусоидой.
//То есть берем значение (радиан)2, делим его на 2^16 То есть (радианы на один полный круг делённые на количество частей)
var stepSizeRadians = 2 * Math.PI / 65536;
var step60Radians = 2 * Math.PI / 6;
var scale16bit = 32767

var curAngle = 0;

function makeNewVirtualControl(vdName, nameControl, typeControl){
  if (getDevice(vdName) === undefined) {
    defineVirtualDevice(vdName, {
      title: vdName,
      cells: {},
    })
  }
     //Тут проверим есть ли уже контрол и если нет - создадим.
    if (!getDevice(vdName).isControlExists(nameControl)) {
      log.debug("Контрола "+nameControl+" нет, создаем.")
      getDevice(vdName).addControl(nameControl, typeControl);
    }
}

makeNewVirtualControl("ForSinValues", "value0", {type:"value", value: 0, readonly: false})
makeNewVirtualControl("ForSinValues", "value1", {type:"value", value: 0, readonly: false})
makeNewVirtualControl("ForSinValues", "value2", {type:"value", value: 0, readonly: false})
makeNewVirtualControl("ForSinValues", "valueZero", {type:"value", value: 0, readonly: false})

//Таймер (бесконечный)
setInterval(function(){
  value=scale16bit*Math.sin(curAngle);
  dev["ForSinValues/value0"] = value;
  value=scale16bit*Math.sin(curAngle+step60Radians);
  dev["ForSinValues/value1"] = value;
  value=scale16bit*Math.sin(curAngle+step60Radians+step60Radians);
  dev["ForSinValues/value2"] = value;
  //log.info("curAngle=", curAngle, "value1=", value1);
  curAngle+=stepSizeRadians;
}, 50)

```

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

---

<div class="post-metadata">

**Author:** ![bulava92](https://avatars.discourse-cdn.com/v2/letter/b/5fc32e/32.png) [@bulava92](https://support.wirenboard.com/u/bulava92)\
**Post date:** [February 20, 2026, 10:01pm UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/19 "2026-02-20T22:01:14Z")

</div>

Тут главный вопрос в том почему это стало происходить. Я не менял никакие настройки данного модуля, установил за несколько дней до создания темы актуальные обновления и началась эта проблема. На данный момент отключены все каналы кроме подключенных к wb-mqtt-serial и этой проблемы нет, но если включить каналы контроллера то сразу нагрузка возрастает, хотя каналов контроллера в десятки раз меньше чем каналов устройств

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [February 24, 2026, 1:08pm UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/20 "2026-02-24T13:08:47Z")

</div>

> [@bulava92](#):
>
> но если включить каналы контроллера то сразу нагрузка возрастает, хотя каналов контроллера в десятки раз меньше чем каналов устройств

Какие “каналы контроллера”?  
Сколько по ним публикаций в минуту?

---

<div class="post-metadata">

**Author:** ![bulava92](https://avatars.discourse-cdn.com/v2/letter/b/5fc32e/32.png) [@bulava92](https://support.wirenboard.com/u/bulava92)\
**Post date:** [February 24, 2026, 1:14pm UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/21 "2026-02-24T13:14:09Z")

</div>

![Снимок экрана 2026-02-24 в 16.12.22](https://support.wirenboard.com/uploads/default/original/3X/b/3/b34cf2cea28a4b5f68e34f56eec9b6811cac36a0.png)

все каналы контроллера, а не подключенных к контроллеру устройств. как только включаю всё - нагрузка 50%

оставляю все каналы кроме каналов контроллера - всё отлично, как везде.

 ![Снимок экрана 2026-02-24 в 16.13.41](https://support.wirenboard.com/uploads/default/original/3X/b/6/b677b5f7bcfc51ba6ee0dd5c6390a39a687de283.png)

---

<div class="post-metadata">

**Author:** ![BrainRoot](https://avatars.discourse-cdn.com/v2/letter/b/c2a13f/32.png) [@BrainRoot](https://support.wirenboard.com/u/BrainRoot)\
**Post date:** [February 24, 2026, 1:16pm UTC](https://support.wirenboard.com/t/wb-mqtt-db-gruzit-proczessor/33582/22 "2026-02-24T13:16:37Z")

</div>

> [@bulava92](#):
>
> все каналы контроллера, а не подключенных к контроллеру устройств. как только включаю всё - нагрузка 50%

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