DQMH Consortium Toolkits Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

RAM increase while using DQMH for Data Acquisition and Logging

Hello community,

 

I had problems on many Test Rigs that are running long term tests with DQMH. After a day (or 2 or 3..) the Executable stopps with the error Massage "Nicht genügend Speicher zum Abschließen der Operation" (Not enough memory to end the operation) and "LabVIEW: memory is full".

 

So the Search for a Memory leak begins...

 

A week and many hours searching later, I found the cause. Now that I know it, the problem is obvious and DQMH related. Its not a failure in DQMH itself, but occures if ones makes mistakes in usage of DQMH tools (like I have done). But I want to let you know, so that you dont run in the same troubles like I do.

 

So my application works like this:

  • more than 5 data acquisition Modules, with at least 1 with a rate of 150 to 200 Hz, most with 20Hz, each sending 1 Broadcast each iteration = up to 300 Broadcasts per second
  • up to 5 Logging Modules (Clones), each registered to every data acquisition Module
    • Worst Case Scenario: 5 Log Modules * 300 Broadcasts from DataAcquisition = 1500 Events / sec

Now that I see it in this short form, its really more obvious.

What happens is this:

The Log Modules cant process 1500 Events per second. Lets say, they can process 1000 Events per second.

After one second there are 500 Events in the Queue of Events that werent processed.

After one hour there are 1800000 Events waiting....

That Events Data fills up the RAM, until the application crashes.

 

Solution is to dont send a broadcast every iteration or to collect data a few iterations and then send the data in one Broadcast.

I hope, that helps somebody.

 

With regards,

 

Lichtenheld

0 Kudos
Message 1 of 2
(2,774 Views)

Marco, thanks for sharing, and for the elaborate description! Broadcasting can really bite you in the ***, either because of too high data rates on the one side, or because of non-deterministic (read: too long) processing time on the other side...

 

This discussion might be of interest to you: https://forums.ni.com/t5/Delacor-Toolkits-Discussions/Feature-Request-add-Get-Queue-Status-method/td...

 

Cheers,

Joerg




DSH Pragmatic Software Development Workshops (Fab, Steve, Brian and me)
Release Automation Tools for LabVIEW (CI/CD integration with LabVIEW)
HSE Discord Server (Discuss our free and commercial tools and services)
DQMH® (The Future of Team-Based LabVIEW Development)


Message 2 of 2
(2,749 Views)