上午十点,设计那边又有人在群里喊,截图上写着 "Cannot obtain a license"、"License checkout failed",或者 "-15,570" 之类的错误码。IT 一查许可证服务器,占满了。采购那边收到消息:再加 20 个吧。
我干这行十几年,碰到这种事的第一反应从来不是算钱,是先搞清楚到底是哪一层断了。因为"抢不到许可"这个报错,背后至少有四五种完全不同的原因,它们的处理方式有的甚至是相反的。加钱只能解决其中一种。
先搞明白这套东西怎么跑的
你得先知道一个许可请求是怎么走完的,不然排查就是瞎撞。
大致是这样:客户端启动 → 找许可服务器 → 服务器校验授权文件和 feature/模块 → 检查当前并发数有没有超 → 签出(check out)→ 客户端拿到许可开始跑 → 关闭或超时后签入(check in)。
这条链子上任何一环断了,用户看到的现象都差不多——"打不开"。但根因天差地别:
- 真实的容量不足:并发真打满了,这个才需要加钱。
- 网络或解析问题:服务器地址配错、DNS 解析不到、防火墙端口没开、主机名大小写敏感(FlexNet 系的老毛病)。用户以为没许可,其实压根没连上。
- 模块/配置问题:授权文件里没有这个 feature,或者写错了版本、日期不对、hostname 对不上。这种加再多许可也没用。
- 空闲占用:有人开着界面下班不关,占着不动。
- 借出去没还:borrow / offline license,出差的人借走一直没归还,服务器上平白少几个。
- 顺便说一句最常见的坑——安装量、授权量、登录人数、并发量这四个数混着用。采购说买了 60 套,IT 看到装了 80 台,日志里峰值并发只有 31。三个都对,但说的不是一件事。不统一口径,你算出来的利用率没法拿去汇报。

各家都踩过的坑
- 只看平均数。淡季一拉,峰值全被抹平,看着永远够用。
- 单次报错当趋势。就某天下午打不开一次,就下结论说不够。
- 日志只有汇总,没有下钻。知道周五下午满了,但谁占着、占的哪个模块,查不出。
- 历史数据被覆盖。今天盖昨天,三个月前那次事故没法复盘。
- 服务起来了就以为好了。lmgrd 重启成功、返回 success,不代表用户那边真能打开,也不代表他明天不被打断。
怎么查:先摸底,再优化,工具最后上
第一步,摸底。这一步不改任何东西,只记录。
- 确认报错时间、模块和用户。把报错信息原样留下来,错误码、时间戳、机器名、账号、请求的模块名,一个都别丢。只说"打不开"这三个字是没法排查的。
- 看许可服务器状态和日志。服务在不在、授权文件读没读进去、vendor daemon 是不是活着、有没有报 -97、-15 这类具体码。日志要能回到具体设备、账号、模块,只有汇总数字不够用。
- 对比峰值并发、拒绝和空闲会话。拉一个完整业务周期,项目型的还得覆盖关键节点。看三个数:峰值打到多少、拒绝了多少次、空闲挂了多久。
- 导出来的表一定抽样回读源系统,人工合并的时候粘错行、导出截断字段,这种事我见过太多。拿一份错的表去跟业务吵架,很难看。
- 查完压成四栏:事实、缺口、影响、责任人。给管理层看的东西就这么点,别写长篇报告。
- 第二步,优化。基本不花钱。
- 先恢复服务,同时保留日志。重启服务或者清理僵尸会话之前,先把日志拷一份出来。不然恢复完证据没了,回头没法复盘。
- 按错误类型分流。连不上归网络,缺 feature 归配置,真打满归容量,挂着不动归空闲治理。分流错了,动作就相反——明明是配置问题你却去采购,白花一笔钱。
- 配告警和空闲治理。闲置超时回收最有效,也最容易挨骂。我的经验是宽松起手,4 小时无操作提醒、再半小时回收,别上来就 30 分钟。顺序永远是先观察、再提醒、后执行,并且留个人工恢复入口,谁被误伤了能马上拿回来。
- 用周期数据判断要不要扩容。上面三招都做完,峰值还是经常打满,再谈采购。这时候你手里的数——拒绝率多少、恢复时长多少、峰值多少、空闲比例多少——拿去跟采购和财务谈,底气完全不一样。
- 每项都要有责任人、完成时间、回读验证。缺一样,人一换就断。
- 第三步,工具。
- 在数据层,许可优化这类能力可以把软件发现、许可日志、账号分配、整改记录归到一个视图,也持续记着峰值并发这类证据。但管理层的事它替不了——优先级谁定、续费买多少,得 IT 拿数据、采购看合同、业务确认项目节奏。
看什么数
- 许可拒绝率:抽样回读源记录,别信汇总。
- 故障恢复时长:按部门或项目留可下钻明细。
- 峰值并发:跟整改任务或业务事件关联起来看。
- 空闲会话比例:分子分母加异常样本都留着。
- 指标突然变好或变差,先怀疑采集覆盖和口径变了,别急着说业务变了。
说个实际干过的
有家做模具的厂,UG(NX)许可,一到月底就有人说打不开。前两年的处理方式是加买,加了两次,还是喊。
后来拉了一个季度的日志。峰值并发确实到过 44,买的是 50,看着是真紧张。往下钻发现,有 7 个会话连续挂着超过一整天,客户端进程还在,但 CPU 和 IO 基本为零——几个人跑完程序界面一关,忘了关软件,或者干脆下班不关电脑。另有 3 个是出差的人借的离线许可,一个多月没还。
先干两件事:闲置超时设成 6 小时提醒、8 小时回收;借用许可上限压到 14 天,到期强制归还。被回收的人确实有意见,所以给跑长任务的加了白名单,走审批。
两个月后峰值降到 29。第二年续费没加,还往下减了几个。中间只出过一次岔子,一个工程师跑 overnight 仿真被回收了,任务重跑了一晚上,从那以后长任务统一走预约窗口。
所以你看,这事从头到尾没花一分钱买许可。