Hello, I created a dashboard with a tab that displays a chart and image from the ifram node. There seems to be performance issues when the chart is showing data and there is an image in the ifram.
I have Node-Red running on a Windows machine with a AMD Ryzen 5 5500U with radeon graphics.
After a while the time between messages from the sensor are steady at 125ms but then suddenly spikes to 1000ms then the image and data will freeze even though the data is being sent from the sensor.
The sensor sends data to port 2112, 2113, and an image is sent to port 5000. The chart history is cleared every 10 minutes, and browser is refreshed 2 minutes to keep things stable and running.
It does seem to work better when the image and chart are on different tabs. Sometimes it will run for 12 hours without any issues, but sometimes it will only run for 2-3hrs.
I’ve been tracking the time between messages from the sensor, which is steady at 125ms. There is a watchdog setup in a flow to catch when the signal spikes above 999ms, then restarts the machine.
This is working for now, but I would like to understand what’s going on with the time between messages. Also if there is a better way or if uiBuilder would be a better option to display the data and image on the same browser.
Sorry, I should have mentiond Node-Red is running on one machine and the browser is on another machine. This seems to provide the best performance. I’ve used Task Manager and Radio Graph to watch the CPU usage but haven’t been logging the CPU usage to see if it spikes at the same time.
I’m usiing iFrames extensively for my integration of Grafana dashboards without performance issues. All data is written by sensors directly into MSSQL.(Node-Red, Grafana and MSSQL running in Dockers on same machine i5-Gen8 laptop with Ubuntu).
The only thing I had realized was that sometimes there is auto-refresh of the graphs or disappear. After F5 all is good again. I solved it by injecting a refresh command every hour. There was no impact to actual data in the DB .. just the display-refresh.
I have several of below iFrames (~10-15) showing various different Grafana -dashboards. I monitor the CPU-load and Memory usage with Dozzle, and all is stable for last 6 months.
Sorry, I forgot to mention. I used DB2 Chart-Node as well and had Memory/CPU issues, but could never figured out the root-cause. Thats why I did the move to Grafana.
UIBUILDER is likely to be a lot lower overheads and so it is possible that it may help. However, without knowing more about what you are trying to do, it is hard to say. Why are you using iframes for example? That always introduces additional overheads.
UIBUILDER generally doesn't need any frameworks and its single library is relatively small so you have a lot more headroom to work with.
You have not answered the question about how you are measuring the time between messages from the sensor.
If that is in the node-red flow (rather than in the browser) are you doing that right at the http In node (assuming that is how you are getting the data)?
Another thing to try is to disconnect the inputs from the chart and image nodes and see if it still fails. If it does not fail then join up just the image and try again, then just the chart and try again. That should help to determine exactly where the problem is.
I’m logging all my sensor data (including timestamp when received) when I at once when I receive them into mysql… best way to check historically and avoid influence from other nodes.. than I can do offline check on message times.
I also log events with timestamp (to mysql) which are bases on sensor data ,,.. so i can calculate time from origin till response