如何查找随时间变化的 Flexlm 许可功能使用情况?

How to find Flexlm liscense Feature usage over time?

我开发了一个脚本,可以从 debug.log 文件中筛选出 "IN:" 和 "OUT:" 的特定功能,如下所示:

  MODULE    IN_OUT  TIMESTAMP       VAR   USAGE
PROE_Flex3C  OUT    4/8/2017 19:27   1     1
PROE_Flex3C  OUT    4/8/2017 19:27   1     2
PROE_Flex3C  OUT    4/8/2017 19:27   1     3
PROE_Flex3C  OUT    4/8/2017 19:27   1     4
PROE_Flex3C  OUT    4/9/2017 2:39    1     5
PROE_Flex3C  IN     4/9/2017 2:42   -1     4
PROE_Flex3C  OUT    4/9/2017 5:45    1     5
PROE_Flex3C  OUT    4/9/2017 5:46    1     6
PROE_Flex3C  IN     4/9/2017 5:50   -1     5
PROE_Flex3C  IN     4/9/2017 5:53   -1     4

对于每个 OUT(许可签出),脚本都会输入 +1,对于每次签入,脚本都会在 VAR 字段中减去 -1,并在 USAGE 下显示计数。

我打算绘制功能(例如 PROE_Flex3C )随时间(时间戳)的使用图。当我使用描述的方法时,我发现峰值使用量超出了可用的总许可功能。为了。 .e.g 如果 PROE_Flex3C 可用的许可证总数为 34,则图表显示的最大许可证利用率为 40.

FLEXnet 许可(v10.8.6.2 内部版本 59284 x64_n6)。如何使峰值许可使用计数准确?可能缺少什么?

问题是通过这种方法计算的峰值使用量超过了可用许可证总数。看起来服务器正在泄漏许可证?

熟人的解答。

'OUT/IN' 对的数量可能与 increment/feature 的令牌数量无关。

对于 Matlab,如果用户拥有网络命名用户 (NNU) 令牌,则他可以从同一台计算机启动多个 Matlab 实例。每个实例都会在日志文件中放置一个 'OUT',但是对于带有 Matlab 的 NNU 令牌,令牌数量不变。为避免您的情况,解决方案是在更改使用的令牌数量之前检查 'login/OUT' 对。

'OUT/IN' 和使用的令牌数量取决于软件的编辑器和使用的许可证类型。

[2017 年 9 月 18 日更新]

该解决方案完全依赖于编辑器和您的许可模型。在我的情况下,您的脚本会给出一些不好的结果。

在我的示例中,我使用 Matlab。

步骤:

  • 来自主持人 'hal9000',我启动了第一个 Matlab 会话;
  • 来自主持人 'hal9000',我启动了第二个会话。

我的许可证文件包含多个许可证,有CN和NNU许可证,这是'DENIED'的原因。日志文件中的痕迹如下:

15:10:58 (MLM) DENIED: "MATLAB" my_login@hal9000  (User/host on EXCLUDE list for feature. (-38,348))
15:10:58 (MLM) DENIED: "MATLAB" my_login@hal9000  (User/host on EXCLUDE list for feature. (-38,348))
15:10:58 (MLM) DENIED: "MATLAB" my_login@hal9000  (User/host on EXCLUDE list for feature. (-38,348))
15:10:58 (MLM) OUT: "MATLAB" my_login@hal9000  
15:12:16 (MLM) OUT: "MATLAB" my_login@hal9000  
15:13:06 (MLM) IN: "MATLAB" my_login@hal9000  
15:40:35 (MLM) IN: "MATLAB" my_login@hal9000  

在我的例子中,对于增量 MATLAB,NNU 令牌影响到 'my_login',这两个操作 'OUT'(15:10:58 和 15:12:16)都记录在logfile 但只有一个标记从增量 MATLAB 的可用标记数中删除。

如果第一个 'OUT' 之前的令牌数量是 6,那么第二个 'OUT' 之后的数量将是 5 而不是 4,因为我使用相同的主机 'hal9000'。在第一个 'OUT' 之后,所有与 'my_login@hal9000' 关联的 'OUT' 都被记录下来,但不更改 'my_login' 在主机 'hal9000' 上使用的令牌数。

Comsol 也有同样的情况,'my_login@hal9000' 生成的所有 'OUT' 都写入了日志文件,但所有 'OUT' 的可用令牌数量仅减少 1 个令牌] 操作。

在您的脚本中,可能需要检查关联 'login@host' 以了解您是否必须根据您的许可证模型更改所用令牌的数量。