SystemLink

cancel
Showing results for 
Search instead for 
Did you mean: 

How does SystemLink monitor cRIO memory usage?

Solved!
Go to solution

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P9usSAC says, "On NI Linux Real-Time OS targets, the Free Physical Memory Property Node of the System Configuration API along with the Distributed System Manager fail to give an accurate accounting of the free physical memory on the device.... It can be difficult to get a simple accounting of system memory usage due to how memory management and reporting is handled by the Linux OS. However, we can use the tools provided by the Linux OS to accurately monitor the memory usage on the real-time device"

 

Does SystemLink use the (more accurate) tools provided by the Linux OS?

 

I'm asking because the SystemLink health tags report a very gradual creep in my cRIOs' memory (~0.5% per day per cRIO), and I'm trying to figure out if it's a real leak or if it's an artifact caused by inaccurate accounting.

Certified LabVIEW Developer
0 Kudos
Message 1 of 6
(781 Views)
Solution
Accepted by JKSH

The SystemLink Client (salt-minion) is a Python process and it uses the native Linux commands for getting the memory statistics.  Originally, the client would only publish the Free memory and the UsePercentage was based on that. As of 2020 R3, it publishes both the Available and Free memory and the UsePercentage is based on the Available memory which is a better indication of whether or not you have an actual memory leak.

 

https://askubuntu.com/questions/867068/what-is-available-memory-while-using-free-command

  • Free memory is the amount of memory which is currently not used for anything. This number should be small, because memory which is not used is simply wasted.

  • Available memory is the amount of memory that is available for allocation to a new process or existing processes.

 

What version of the SystemLink Client do you have installed on your RT target or what distribution (system image) are you running?

Message 2 of 6
(755 Views)

Thanks for confirming Joshua.

 

According to NI MAX, my cRIOs have "Linux RT System Image for Qt 2020", which if I'm not mistaken is older than SystemLink 2020 R3.

 

I'll see if I can get a non-production unit upgraded to a newer system image, and see if the "leak" still occurs.

 

Are there any known issues with using a newer cRIO image with an older SystemLink server? (Our server is currently running SystemLink 2020 R2)

Certified LabVIEW Developer
0 Kudos
Message 3 of 6
(740 Views)

In general, we don't recommend or support using new clients with older servers. The opposite is just fine. We fully support connecting older clients to a newer server, so you can update your server in the future even if you don't have time to update every client.

 

I think you may run into issues if you try to upgrade your client all the way to 2021 R2, but you may be fine upgrading your client to just 2020 R3. I don't think there were many API changes/additions between 2020 R2 and R3, but it is hard to know for sure.

Message 4 of 6
(736 Views)

Oops, my previous post was supposed to say "Q2 2020".

 


@JoshuaP wrote:

I think you may run into issues if you try to upgrade your client all the way to 2021 R2, but you may be fine upgrading your client to just 2020 R3. I don't think there were many API changes/additions between 2020 R2 and R3, but it is hard to know for sure.


Is there a formal policy for managing changes in SystemLink? (By "policy" I mean something like https://semver.org/ ) I gather that there are major changes from 2020 -> 2021, but what types of changes can we expect from R1 -> R2, or R2 -> R3?

 

And how does this map into the versioning schemes of the Linux RT system images? NIPM shows 2020.03, 2020.06, 20.5, 20.6, 20.7, 21.0 -- how can we tell which version of the SystemLink Client comes with each?

Certified LabVIEW Developer
0 Kudos
Message 5 of 6
(733 Views)

SystemLink doesn't differentiate between major vs minor releases. SystemLink does continuous delivery and we release quarterly updates for customers based on what features are ready to be shipped. In addition, we will release some patches in between quarterly releases if we discover any critical issues between our normal releases.

 

The major version is really just designed to align with the year it was released and we have 4 different minor versions every year to align with the quarter. The major version of the SL Server is also tied to the version in the license file so that you don't have to get a new license file for every minor version.

 

When it comes to aligning with the Linux RT system image it has been a mixed bag because NI keeps changing their version policies however starting next year they should be aligned. In general, the display versions (2020 R4) should be aligned between the system image and the version of the SystemLink Client.

Message 6 of 6
(730 Views)