# Dashboard not responsive

**URL:** <https://discourse.nodered.org/t/dashboard-not-responsive/68079>\
**Category:** Dashboard\
**Created:** [22 September 2022 13:36 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079 "2022-09-22T13:36:02Z")\
**Posts on this page:** 19\
**Page:** 1

<div class="post-metadata">

**Author:** ![Marchal-web](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marchal-web/32/66937_2.png) [@Marchal-web](https://discourse.nodered.org/u/Marchal-web)\
**Post date:** [22 September 2022 13:36 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/1 "2022-09-22T13:36:02Z")

</div>

Hello all,

I would like to display responsive numbers on a dashboard. Nodered receive mqtt & zmq streams at 5Hz.

I have created a dashboard with 20 text nodes. 4 clients open this dashboard and look at the numbers. If a fifth client opens the same dashboard, this fifth, first and fourth dashboard start to be slow, there is 10 seconds delay on the numbers. Also, the second and third customer may still receive responsive numbers on their dashboard. If the fifth client closes his dashboard, the first and fourth clients get responsive numbers back after about 10 seconds.

Nodered runs on a raspberry, the total CPU load including Nodered is about 20%. Client can run on ethernet or wifi tablet. There no network issue. There only mqtt, zmq buffer-parser and texts nodes on in the flows.json, it is a light flows.

I tried on a more powerful computer that only runs nodered, there is the same behavior.

have you ever noticed this behavior? Is there option to avoid this delay?

---

<div class="post-metadata">

**Author:** ![paulkeates](https://avatars.discourse-cdn.com/v4/letter/p/9de053/32.png) [@paulkeates](https://discourse.nodered.org/u/paulkeates)\
**Post date:** [22 September 2022 14:34 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/2 "2022-09-22T14:34:18Z")

</div>

Hi,

Likely the total number of items being displayed on the Dashboard is too high. It really only works well with several hundred or fewer datapoints. Text items? Not charts? You might be ok.

Also - 5Hz. update frequency is pretty aggressive - is there a way to coalesce the data into smaller, less-frequent 'chunks' to reduce frequency?

Four clients work fine, but then adding one more client kills performance... hmmm. What about memory consumption?

What version of Node, Node-RED & Dashboard are you running?

Cheers,

Paul

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [22 September 2022 15:17 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/3 "2022-09-22T15:17:35Z")

</div>

If you slow the data rate to 1 Hz does it make a difference?

---

<div class="post-metadata">

**Author:** ![Marchal-web](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marchal-web/32/66937_2.png) [@Marchal-web](https://discourse.nodered.org/u/Marchal-web)\
**Post date:** [23 September 2022 07:42 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/4 "2022-09-23T07:42:18Z")

</div>

The processor load is about 20% (the one running nodered), and the other about 5%. RAM is about 400M for 8G.

I have no graphics and only 25 text elements. The size of the elements is different. Some of them are bigger than others. They cover the whole dashboard.

I reduce the mqtt & zmq stream to 2Hz, this is the minimum frequency I can apply to get dynamic numbers. I use nr: 3.0.2 and dashboard: 3.1.7

What is the reason for this delay? The tablet browser is too slow, or nodred can't track multiple clients at 3Hz?

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [23 September 2022 08:57 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/5 "2022-09-23T08:57:30Z")

</div>

I suggested allowing it in order to help diagnose the problem.

I don't know how multiple clients are handled in the dashboard. @dceejay, with multiple clients do the websocket connections run in parallel or in series?

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [23 September 2022 11:22 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/6 "2022-09-23T11:22:51Z")

</div>

Each client has its own web socket. And as this is a nodejs application they are all running on the same thread/event loop so will be handled in series.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [23 September 2022 16:04 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/7 "2022-09-23T16:04:17Z")

</div>

> [@dceejay](#):
>
> will be handled in series.

I don't know much about websockets, so does that mean that if you connect a number of slow devices (five in this case) that it might overload the comms?

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [23 September 2022 17:27 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/8 "2022-09-23T17:27:33Z")

</div>

Highly unlikely given how well nodejs performs in general. Easy to test by opening a set of browser windows.

---

<div class="post-metadata">

**Author:** ![Marchal-web](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marchal-web/32/66937_2.png) [@Marchal-web](https://discourse.nodered.org/u/Marchal-web)\
**Post date:** [23 September 2022 17:27 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/9 "2022-09-23T17:27:39Z")

</div>

I also don't know much about web socket, serials means that nodered sends the data to the websocket client one by one, otherwise parrallele it's like a broadcast to all the clients? (which is less resources for nodered).

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [23 September 2022 17:53 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/10 "2022-09-23T17:53:09Z")

</div>

> [@dceejay](#):
>
> Highly unlikely given how well nodejs performs in general.

That is what I thought, but I am having difficulty explaining the symptom seen here.

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [23 September 2022 18:00 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/11 "2022-09-23T18:00:10Z")

</div>

I can only guess there is some messaging loop in there somewhere.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [23 September 2022 18:12 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/12 "2022-09-23T18:12:17Z")

</div>

There are only text elements on the dashboard, but when more than four clients are connected it slows down dramatically, apparently. The CPU does not seem to be overloaded, and running on a more powerful computer does not help. That suggests it is something to do with the clients.

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [23 September 2022 19:05 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/13 "2022-09-23T19:05:38Z")

</div>

Simple test with 9 separate browser windows updating 10 times a second...  
(actually it is smoother than the video capture software shows.)  
 ![CLEt4zSV8k](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/7/2/72181f5bfc30af176347747968bac39c3070ffc3.gif)

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [23 September 2022 19:35 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/14 "2022-09-23T19:35:53Z")

</div>

The system here has 25 UI nodes, though you wouldn't think that would make much difference.

---

<div class="post-metadata">

**Author:** ![Marchal-web](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marchal-web/32/66937_2.png) [@Marchal-web](https://discourse.nodered.org/u/Marchal-web)\
**Post date:** [24 September 2022 09:25 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/15 "2022-09-24T09:25:06Z")

</div>

@dceejay tanks for the answer, There's no loop in the flows. It is quite simple, mqtt node, limit node (to reduce the rate to 2hz) buffer parser to decode numbers, and straight forward to 25 text nodes. There also a pull zmq node at 3hz to text nodes.

---

<div class="post-metadata">

**Author:** ![Marchal-web](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marchal-web/32/66937_2.png) [@Marchal-web](https://discourse.nodered.org/u/Marchal-web)\
**Post date:** [24 September 2022 09:29 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/16 "2022-09-24T09:29:53Z")

</div>

@dceejay as @Colin said could you please add 24 up text node and try again to see if you can reproduce my problem  
Thanks a lot to look at my issue.

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [24 September 2022 10:47 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/17 "2022-09-24T10:47:22Z")

</div>

It would be simpler if you shared your exact flow.

---

<div class="post-metadata">

**Author:** ![Marchal-web](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/marchal-web/32/66937_2.png) [@Marchal-web](https://discourse.nodered.org/u/Marchal-web)\
**Post date:** [25 September 2022 08:20 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/18 "2022-09-25T08:20:17Z")

</div>

I will do

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [25 October 2022 08:21 UTC](https://discourse.nodered.org/t/dashboard-not-responsive/68079/19 "2022-10-25T08:21:01Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
