了解 SLM 标记日志记录

您可以在编译器中启用 IBM® Software License Metric (SLM) 标记日志记录,以便 IBM License Metric Tool (ILMT) 可以跟踪编译器许可证使用情况。

记录的编译器许可证的类型

编译器将记录以下类型的编译器许可证的使用情况:
  • 授权用户许可证: 每个编译器许可证都与特定用户标识绑定,由该用户的 uid 指定。
  • 并发用户许可证: 特定数量的并发用户有权在任何给定时间使用编译器许可证。
编译器将每个编译器调用记录为并发用户或授权用户调用,具体取决于在列出授权用户的文件中是否存在调用用户的 uid。
注: IBM Open XL Fortran for AIX® 17.1.1 还支持每月许可证。 每月许可证可由 ILMT 直接跟踪。

SLM 守护进程

SLM 标记文件由 SLM 守护程序创建。 SLM 守护程序是编译器中的常规可执行文件。 它为每个用户定义的时间段输出一个标记文件。 如果没有用户在用户定义的时间段内调用编译器,那么守护程序将终止,并通过对编译器的新调用重新启动。 您可以在配置文件中指定两个时间段。

SLM 标记文件

编译器将编译器许可证使用情况记录到 SLM 标记文件 slm_dir/hash.slmtags其中 slm_dir 是配置文件中定义的可配置目录。 hash 是当前产品的 SWID 和根目录的 MD5 散列。 slm_dir 的缺省值为 /var/opt/ibm/xl-compiler/ (对于缺省安装) 或 $prefix/var/opt/ibm/xl-compiler (对于非缺省安装) ,其中 $prefix 是非缺省安装路径。 调用编译器的所有用户都必须可读取和可写 slm_dir 目录。

标记文件的主要元素如下所示:
<StartTime> 和 <EndTime>
调用的开始时间和结束时间。
<Value>
<StartTime><EndTime> 元素表示的时间段内同时调用编译器的最大用户数。
<Type>
已记录的编译器许可证的类型。
<Metric>
所有上述元素都包含在 <Metric> 元素中。 SLM 守护程序在每个时间段最多输出两个 <Metric> 元素,一个用于授权用户,另一个用于并发用户。

以下示例是编译器生成的标记文件。 它记录三个并发用户调用,后跟一个授权用户调用。

<SchemaVersion>2.1.1</SchemaVersion>
 <SoftwareIdentity>
         <PersistentId>3f14162bbf0240de94ca3b8613eff167</PersistentId>
         <Name>IBM Open XL Fortran for AIX</Name>
         <InstanceId>/opt/ibm/xlf/17.1.1</InstanceId>
 </SoftwareIdentity> 
<Metric logTime="2022-10-01T18:39:51Z">
         <Type>AUTHORIZED_USER</Type>
         <Value>1</Value>
         <Period>
                 <StartTime>2022-10-01T18:34:51Z</StartTime>
                 <EndTime>2022-10-01T18:39:51Z</EndTime>
         </Period> 
</Metric> 
<Metric logTime="2022-10-01T18:39:51Z">
         <Type>CONCURRENT_USER</Type>
         <Value>3</Value>
         <Period>
                 <StartTime>2022-10-01T18:14:51Z</StartTime>
                 <EndTime>2022-10-01T18:19:51Z</EndTime>
         </Period> 
</Metric>

标记文件具有可配置的大小限制,缺省值为 5,000,000 字节。 如果当前文件的大小超过最大大小,那么将除去该文件中的旧 <Metric> 元素。 您可以通过 配置文件的 -slm-limit 属性来指定大小限制。

错误记录

如果守护进程分支之前发生错误,则返回代码为 -1。 否则,将不会报告任何故障。 在任一情况下,都会将错误记录到 slm_dir/.hash/log