Because of the specific memory management of Linux it is not so obvious how much memory is in use and how much is free. A common pitfall is the use of the System Property Node
FreePhysMem to get the amount of memory LabVIEW (or other programs) could use. Linux uses extensive buffering of IO-operations that can lead to a huge memory usage. In this case
FreePhysMem will show a very low value (about 16 MB seems the minimum Linux holds back), but there is probably much more memory available if some process asks for it.
To get more detailed information about the memory on a Linux machine the best way it to read the (virtual) file
/proc/meminfo (e.g. with
cat /proc/meminfo on the Bash). A lot of the content is really complicated operating system stuff, for more information see https://access.redhat.com/solutions/406773.
Most relevant are the fist three lines:
MemTotal: Total physical memory (same as
TotalPhysMemin the System Property Node)
MemFree: Memory not used by anything. Probably this is the value
FreePhysMemin the System Property Node returns. This memory gets consumed from IO-buffers with the time.
MemAvailable: Is the amount of memory that a process or whatever can allocate until the memory is “full”. This is probably the best value to determine the free memory on a Linux machine.
For easy accessing the Linux memory info from LabVIEW there is a VI
Get Linux MemInfo.vi in the project HAGEMONITOR-MASTER. This VI returns all
meminfo content as attributes of a variant. In the future this VI could go into a RT-Tools-library.