研发那边又报 "License Manager Error -4"。
你登到许可服务器上一查,MATLAB 的 key 全被签出,占用者里有三个是昨天下午就挂着没退的会话,还有两个是三年前那台跑 R2019b 的老工作站——那台机器现在只用来跑一个改不动的旧脚本。
更麻烦的是:你手上明明有 10 个 MATLAB 的 key,但其中 4 个只能给 R2021a 及更早的版本用。研发要跑 R2024b,能用的一共只有 6 个。
MathWorks 官方定义了四种部署形态:
| 类型 | 授权对象 | 关键限制 |
|---|---|---|
| Individual | 单个具名用户 | 最多装 4 台电脑,同时最多用 2 台;12 个月内最多重新指定用户 4 次 |
| Designated Computer | 单台物理机(非虚拟) | 同时仅一人使用;必须从该机控制台操作,不允许远程访问;12 个月最多重新指定 4 次 |
| Network Named User | 指定数量的具名用户(最少 2 人) | 需单一 License Manager;单用户同时最多 2 台 |
| Concurrent | 并发 key 数 | 需单一 License Manager;谁都能用,先到先得 |
典型问题:历史采购沉淀下来,四种类型同时存在,没人说得清哪些能合并、哪些是死资产。
这是"旧系统"三个字真正的杀伤力所在。
许可文件是按 release 分开计数的。 官方举的例子很直白:如果 License Manager 有 2 个 R2022b 的 MATLAB,3 个 R2021a 的 seat,那么可能有 5 个人签出 R2021a 及更早版本,但只有 2 个人能签出 R2022b。第三个想用 R2022b 的人,直接吃 Error -4。
结果就是:总量看着够,按版本拆开全都不够。老版本那批 key 因为没人用而闲置,新版本那批常年排队——两头的钱都花了,两头都不够用。
行业基线:多数企业浮动许可真实使用率只有 40%–60%,闲置主因是开着软件不用。MATLAB 尤其典型——跑一个仿真脚本几小时,人去吃饭开会,key 一直占着。
这是本篇最需要纠正的一条。
网上流传"FlexNet 的 TIMEOUT 一般设 1800 秒(30 分钟)最合适"——这个说法对 AutoCAD、Adams、Ansys 大致成立,但对 MATLAB 完全错误。
MathWorks 官方明确:
合规层面别存侥幸:Altium 这类厂商内置 PDRSS 遥测机制,回传计算机名、MAC、使用实例数,先扫公网 IP 定位到企业,拿到线索后再由律所发律师函——是有线索的定向行动,不是随机抽查。不同厂商机制不同,但"查不到我"这个假设在谁身上都不成立。

① 先把当前占用看清楚
:: Windowscd C:\Program Files\MATLAB\R20XXx\etc\win64lmutil lmstat -a -c license.dat:: Linuxcd /usr/local/MATLAB/R20XXx/etc/glnxa64./lmutil lmstat -aWindows 也可以直接用 lmtools.exe → Server Status → Perform Status Enquiry。
② 必须统计的四个口径
参考口径:同处仿真工具链的 Adams,抢 key 最凶是早上 9:00–10:30,下午和晚上使用率常低于 30%。MATLAB 的曲线形状不同(仿真类常见于上午提交作业、下午看结果),但方法一致——先跑满两周再下结论。
⚠️ 日志只能做辅助排障,使用率统计请用 lmstat 定时采样落库,不要解析 lmlog.txt。
① 正确配置 TIMEOUT(记住是 4 小时起步)
创建/编辑 MLM.opt(路径 matlabroot\etc\$ARCH\,Windows 如 C:\Program Files\MATLAB\R2022a\etc\win64\MLM.opt):
TIMEOUT MATLAB 14400然后必须在许可文件的 DAEMON 行用 options= 指向它:
DAEMON MLM "C:\Program Files\MATLAB\R2022a\etc\win64\MLM.exe" \ options="C:\Program Files\MATLAB\R2022a\etc\win64\mlm.opt"改完必须停止并重启 License Manager(不是 reread)。
⚠️ 两个副作用要提前跟研发打招呼:
② 管住借出
③ 版本号对齐
确认客户端 MATLAB ≥ R14SP3、License Manager ≥ 9.2。旧系统大概率卡在这里——这也是很多人配了 TIMEOUT 却完全没动静的真实原因。
① 按版本合并,这是旧系统最大的一块收益
把分散在各 release 上的 key 收敛:能升级的旧版本统一升上来,把"只能跑老版本"的 key 腾出来。老版本那批闲置 key,是你谈判时最有力的筹码。
② 按峰值并发买 Concurrent,不按人数买
③ 类型归拢
④ 维护服务不要断
断缴触发的是 back maintenance + 续期费 + 25% reinstatement。旧系统常年没人管的那批许可,先把 SMS 状态核一遍再谈别的。
⑤ 上游工具链变更要算进去
如果公司在往 3DEXPERIENCE 迁移,注意:CATIA V5 的永久许可不能直接打开 3DEXPERIENCE 的文件,需要加购共存/迁移相关授权(达索官方归在 File Coexistence and Migration / Downward Compatibility 下)。MATLAB 侧的模型接口和数据链路会跟着变,这笔返工量从来没人算进迁移预算。
当软件种类超过 5 个、跨厂区调度、或需要统一审计报表时,才值得上企业级许可管理平台。工具不会替你把口径建起来,只会把你混乱的流程自动化。

| 方案 | 成本 | 见效周期 | 效果 | 适用场景 |
|---|---|---|---|---|
| lmtools / lmstat 手工查 | 0 | 即时 | 只看当下,无历史 | 应急排障 |
| lmstat 定时采样 + 落库 | 0(人力) | 1–2 周 | 有分时曲线和峰值,能支撑采购谈判 | 所有网络许可环境,必做 |
| TIMEOUT + 借出管理 | 0 | 当天 | 自动回收 4 小时以上闲置;管不了短时挂机 | Concurrent 许可 |
| 版本合并(采购结构调整) | 中 | 1 个采购周期 | 旧系统收益最大:把闲置的老版本 key 盘活 | 多版本并存的历史环境 |
| 企业级许可管理平台 | 中高 | 2–4 周 | 多软件统一看板 + 审计报表 | 多软件、多厂区、高频审计风险 |
某汽车零部件企业,MATLAB 许可沉淀了八年,现状是 Total 13 个 key,但分散在 R2016b / R2019b / R2021a / R2024b 四个 release 上,服务 28 名工程师。长期状态:上午十点后必有人吃 Error -4,同时老版本那批 key 常年零占用。
三步改造:
三个月后:
| 指标 | 优化前 | 优化后 |
|---|---|---|
| R2024b 峰值占用 | 100%(Error -4) | 74% |
| 老版本 key 并发 | 0–1 | —(已合并) |
| 整体闲置率 | 52% | 17% |
| Error -4 投诉 | 每周 4–5 次 | 0 |
| 可用 key 总数 | 13(按版本割裂) | 9(统一版本,实际可用反而上升) |
关键不是多买了,是把被版本切碎的 key 归拢了。 数量从 13 降到 9,能用的人反而更多。
旧系统 MATLAB 许可不够用,八成不是 key 买少了,是 key 被 release 切碎了,加一批常年挂机的会话吃掉了存量。
四条明确建议,按优先级:
最后一句:网上那句"TIMEOUT 设 1800 秒最合适",对 MATLAB 是错的。 写了会被静默覆盖成 4 小时,而且官方明确——想方设法绕开这个下限,属于许可违规。
术语校验说明(发布前请技术同事过一遍)MATLAB 使用 FlexNet,vendor daemon 为 MLM,选项文件为 MLM.opt,需在许可文件 DAEMON 行以 options= 指向;改后必须重启(非 reread)。TIMEOUT 最小 14400 秒(4 小时),低于该值静默取最小值;仅作用于 MATLAB feature,超时后该会话工具箱一并归还;客户端需 R14SP3+、License Manager 需 9.2+;MathWorks 不推荐 TIMEOUTALL;官方支持渠道明确绕开下限属违规。四种许可类型(Individual / Designated Computer / Network Named User / Concurrent)的数量与限制依据 MathWorks Program Offering Guide:Individual 最多 4 台安装、同时最多 2 台;Designated Computer 为单台物理(非虚拟)机、不允许远程访问;两类均限 12 个月内重新指定 4 次;Network Named User 最少 2 人。按 release 分开计数导致的 Error -4,依据 MathWorks 官方支持文档示例。Error -4 = "Maximum number of simultaneous users for this product reached"。FlexNet 日志文件自带"仅供调试、用于用量统计会产生错误结果"的警告,且默认重启覆盖。使用率统计请用 lmstat 采样。linger:XXX 表示借出会话(秒);lmborrow -return 提前归还(feature 名大小写敏感)。SMS 断缴恢复需补 back maintenance + 续期费 + 25% reinstatement fee,依据 MathWorks 价目/条款说明。文中 FlexNet TIMEOUT 1800 秒的说法适用于 AutoCAD、Adams、Ansys 等,不适用于 MATLAB。CATIA V5 → 3DEXPERIENCE 数据互通能力,达索官方归类于 File Coexistence and Migration / Downward Compatibility,具体授权 SKU 随版本变化,需向达索或代理商核实。Altium 的 PDRSS 机制为公开信息,与 MathWorks 无关,仅作合规机制对照。文中案例数据为示意,正式发布前请替换为本企业实测值。