Possible to Check the CPU Load or Network Load?

Hi!

I'm currently troubleshooting a project, We got a Bosch Rexroth PLC With Node-RED running on it,
Now there is some issues with a Ethernet/IP TCP Device, The issue is that Very Irregularily a message to/from the Device is delayed heavily (Around 15 seconds delay) and that puts the Machine in Timeout as it hasn't recieved a message in time. The message always comes through sooner or later and is always an CommandOK message.

Now i've searched high and low in the PLC and the Network Switch between all the machines, I've had some System Engineers from Rexroth look at the PLC:s code and found some weird thing that got fixed but the issue still stands.

Does anyone here know if it is possible to check Node-RED:s Process/Network Load?
Or anyone who has experienced something similar to this? The flow is not very complex so i dont think it should be experiencing Lag of any kind but i might be wrong. Below i'll add a Image of the Flow.
Feel free to ask as much as needed, just know i have to keep some things private about this :slight_smile:

I would have thought that you would have to ask the Rexroth engineers how to monitor the cpu load that node-red is using. For a machine running linux one could use the top command for this, but the device may not be running linux.

For the network usage you could use any of a number of network monitoring tools running on a pc to monitor the traffic to and from the device.

By adding debug nodes to appropriate places you may be able to see where the delay is.

Debug41 is The Node where it collects the Data, I've managed to catch only once when it happened and it was from the output of the TCP Node, The issue is i cannot monitor Node-RED through the PLC, hence why i was asking if there is some kind of Monitor Node for the processes inside Node-RED, The CPU load in the PLC only checks Everything, i cannot isolate a specific App or process sadly, Ethernet is the same, i cannot check which process is using xx% of the max capacity

If CPU load is the problem then that would at least show that something is loading the CPU. I would be surprised if it were node-red though.

These sort of issues are common with node red embedded in proprietary kit, which is why I advise not using that approach. Another problem will arise when you want to take advantage of new features in node-red and find that you cannot upgrade it. What versions of nodejs and node-red does the device support?

Given that you're in an industrial setting, have you considered FlowFuse (built by the creator of Node-RED)?

CPU (and memory) monitoring was recently added:

You can also manage all of your PLC-based Node-RED deployments in one place using the FlowFuse Device Agent

More generically, this article here shows how you can extract the CPU data from your hardware too: Monitoring Device Health and Performance at Scale with FlowFuse • FlowFuse

I presume you’re running node-red on a CtrlX.

If so there is a screen in the web interface where you can monitor cpu load. As I recall you will find what core it’s running on and percentage of load.

Past few years I worked with ctrlX and NR and found that it can be overloaded easier than I would have expected, but it runs at a lower priority than other tasks.

Perhaps if you have the license that unlocks all the cores it will increase your stability. If you have a basic or standard license then it’s only using 2 of the available 4 cores as I recall. The performance license unlocks the rest.