FlexNet的TIMEOUT和TIMEOUTALL选项,是解决“僵尸许可”问题最直接的手段。它通过设置一个非活动超时(Inactivity Timeout) 参数,让许可证服务器自动回收那些被占用但长期闲置的许可证。
配置方法:三步启用超时回收
配置超时回收,主要通过编辑一个名为选项文件(Options File) 的文本文件来实现。
第一步:创建或定位选项文件
选项文件是一个纯文本文件,命名规则通常是 供应商守护进程名.opt。你需要找到它的位置或创建一个新文件。
- 查找现有文件:常见的文件名有 ptc.opt (PTC软件)、adskflex.opt (Autodesk软件) 或 cameo.opt (Nomagic软件)。
- 创建新文件:如果找不到,可以用记事本创建一个新的文本文件,并命名为 <vendor_daemon_name>.opt。
第二步:编辑选项文件,写入超时指令
在选项文件中,根据你的需求,使用 TIMEOUT 或 TIMEOUTALL 指令。
| 指令 | 作用 | 语法示例 |
|---|
TIMEOUT | 为特定的一个功能(Feature)设置超时时间。 | TIMEOUT <功能名称> <超时秒数> |
TIMEOUTALL | 为所有功能统一设置一个超时时间。 | TIMEOUTALL <超时秒数> |
配置示例:
text
# 为名为 "CAD_Design" 的功能设置超时为1小时(3600秒)
TIMEOUT CAD_Design 3600
# 为所有功能统一设置超时为15分钟(900秒)
TIMEOUTALL 900
第三步:关联选项文件并重启服务

- 关联文件:在核心的许可证文件(.lic)中,找到 VENDOR 那一行,并在末尾添加 OPTIONS=<你的选项文件路径>。textVENDOR snpslmd /opt/synopsys/snpslmd OPTIONS=/opt/flexnet/snpslmd.opt
- 使配置生效:你需要重启 lmgrd 服务,或者执行 lmreread 命令让新配置生效。
参数建议:如何设置合理的超时值
设置超时值,关键在于找到平衡。时间太短容易误伤,时间太长又起不到回收效果。
- 通用规则:行业公认的最低有效值是900秒(15分钟)。如果设置的值小于900秒,系统会忽略你的设置,继续使用900秒。这个限制是为了防止因网络短暂抖动而误回收许可证。
- 厂商差异:不同软件厂商的默认值和最小值可能不同。例如:PTC (Creo等):默认7200秒(2小时),最小值1200秒(20分钟)。Autodesk:通常认为最低有效值是900秒(15分钟)。MathWorks (MATLAB):最小值为14400秒(4小时)。IBM:最小值为7200秒(2小时)。
注意事项:TIMEOUT 的局限性
配置 TIMEOUT 前,有几个关键的局限需要了解:
- 依赖软件支持:TIMEOUT 功能需要软件开发商在程序中主动启用。并非所有软件都支持。
- 基于“心跳”,而非“操作”:TIMEOUT 检测的是网络“心跳”包的静默。如果用户开着软件去开会(TCP连接未断),TIMEOUT 可能不会生效,因为它无法感知“人是否在操作”。
- 并非万能:对于真正的“人走机在”场景,TIMEOUT 效果有限。更精准的闲置识别,通常需要结合第三方工具,从键盘鼠标操作等维度进行判断。
总的来说,正确配置 TIMEOUT 选项是优化浮动许可利用率的基础且有效的手段。
核心建议:
- 从 TIMEOUTALL 900 开始:这是最通用、生效最快的配置。
- 监控并调整:部署后,观察日志和用户反馈,如果误报过多,再逐步将900秒(15分钟)增加到1200秒(20分钟)或更高。
- 了解其局限:明确 TIMEOUT 是基于网络心跳的机制,它并非万能。对于更精细化的管理需求,可以探索其他更智能的解决方案。