监控实时嵌入式目标上的 CPU 和内存使用情况

更新 Sep 4, 2023

环境

硬件

  • CompactRIO Controller

软件

  • LabVIEW Real-Time Module

操作系统

  • Windows

我想使用 LabVIEW 了解给定时刻的 CPU 负载以及实时 (RT) 控制器上的可用内存。 如何监控系统中的资源使用情况?

有多种选项可以监控 NI 实时 (RT) 控制器上的 CPU 和内存使用情况。可用内存量取决于多个因素,包括安装的软件和用户应用程序内存要求。

本指南将介绍通过 Windows 操作系统访问此信息的不同方法:

  • 使用 LabVIEW 2012 及更高版本以编程方式
  • 外部使用Measurement & Automation Explorer (MAX)(仅内存)
  • 外部使用 NI 分布式系统管理器 (DSM)(LabVIEW 2009 或更高版本)
  • 外部使用Real Timer Trace Viewer
  • LabVIEW 版本 8.6.x 及更早版本

对于 Linux 实时控制器,内存管理和报告与其他实时目标不同。有关如何实施内存监控的信息,请参阅 Error -2147220623: Largest Memory Block Property Does Not Exist NI Linux



使用 LabVIEW 2012 及更高版本进行编程:
使用系统配置 API,您可以使用属性节点(系统)获取内存使用信息,使用属性节点(系统)获取内存使用信息,使用属性节点(硬件)获取内存和 CPU 使用详细信息。有关如何使用属性节点(系统)和(硬件)的更多信息,请参阅 LabVIEW 中的Resource Monitor VI示例,方法是转至帮助 >> 查找范例... ,加载 NI 示例查找器后,浏览至硬件输入和输出 > > 系统配置



外部使用Measurement & Automation Explorer (MAX)(仅内存):
  1. 打开NI MAX。您可以通过选择开始»程序»National Instruments» NI MAX完成此操作。
  2. 在配置窗口中展开远程系统
  3. 选择您的实时控制器。
  4. 在主窗口中,选择“系统设置”选项卡。此选项卡包括总内存和可用内存,以及总磁盘空间和磁盘上的可用空间量。


外部使用 NI 分布式系统管理器 (DSM)(LabVIEW 2009 或更高版本):
  1. 打开分布式系统管理器。您可以在Windows中选择开始»程序»National Instruments»分布式系统管理器来完成此操作,或者在LabVIEW中单击工具»分布式系统管理器
  2. 展开“配置”窗口中的“网络项”。
  3. 选择实时控制器的 IP 地址。
  4. 选择CPU/内存选项卡并在自动视图中查看内存使用情况。



您还可以选择保存可用内存值的单个共享变量来查看可用内存。

注意:如果您在NI分布式系统管理器中看不到此信息,请参阅 CPU and Memory Usage Not Visible in NI Distributed System Manager,并确保系统状态发布器已安装在您的实时控制器中。

在外部使用Real Time Trace Viewer:
监视 RT 目标上的 CPU 使用情况的另一个选项是使用 Real Time Trace Viewer。使用 Real Time Trace Viewer,您可以创建执行跟踪,以查看内存分配、CPU 使用情况和线程调度。Real Time Trace Viewer 包含在LabVIEW 2014 实时模块及更高版本中。 2014 年之前的 LabVIEW Real-Time 模块版本将 Real Time Trace Viewer 打包为单独的工具包(Real Time Trace Viewer 工具包)。有关使用实时跟踪查看器的更多信息,请参阅使用 Real Time Trace Viewer 调试多核应用程序。

LabVIEW 8.6 及之前版本:

 

LabVIEW 7.1、8.0、8.2.x、8.5.x、8.6.x:

实时系统管理器显示有关在 RT 终端上运行的 VI 的详细信息,并提供目标设备性能的动态显示。这将提供最详细的内存使用情况的视图。

 

LabVIEW 7.0:

选择操作»RT引擎信息,查看RT引擎的内存使用信息。您将看到总内存和可用内存。

 

LabVIEW 6.0.2、6.1:

将以下行添加到主机上的labview.ini文件中并重新启动LabVIEW:

目标内存信息=true

然后您可以选择操作»RT 引擎信息来查看 RT 引擎的内存使用情况。

附加信息

  • LabVIEW Real-Time 控制器上的可用内存量取决于多种因素,包括安装的软件和用户应用程序内存要求。
  • 对于 Linux 实时控制器,内存管理和报告与其他实时目标不同。有关如何实施内存监控的信息,请参阅 Error -2147220623: Largest Memory Block Property Does Not Exist
  • 如果您使用LabVIEW 2009及更高版本,您可以使用RT 获取CPU负载获取内存状态 VI 以编程方式监控 CPU 和内存使用情况。请注意,这些 VI 必须在实时目标上运行。

  • 如果您使用的是 LabVIEW 8.6 或更低版本,则需要使用 Real Time Trace Viewer ,而不是 NI 分布式系统管理器