NX这东西的许可机制,跟大多数人脑子里那个“买了多少就能用多少”的印象完全是两码事。它走的是FlexNet,lmgrd带着ugslmd在后台跑,用户打开ugraf.exe,客户端就去checkout一个feature,设计模块吃design_token,CAM吃machining的token,仿真再单独算。问题在于,FlexNet只管“先到先得”,它不管你checkout走之后是在画图还是在刷手机。一个工程师早上开了NX,占着token去开评审会,下午回来发现会话还在,token还在他名下,外面排队的CAM组急得拍桌子,服务器上显示的是“已占用”,不是“闲置”。原生FlexNet没有“智能回收”这个概念,TIMEOUT看的是lmstat心跳,不是你的键鼠,你人走了,心跳还在跳,它就觉得一切正常。所以那些喊“许可不够”的厂,相当一部分不是真的不够,是池子里有东西在空转。
我见过最蠢的做法,就是设个cron,每小时lmremove一批闲置会话。2024年冬天我在东莞就干过这事,第二天工艺组长堵在机房门口,说他刀路算到89%被硬断了,重跑四个小时。lmremove是直接把会话从license server上踢掉,NX客户端那边当场弹许可错误,正在写的草图、正在解的算例,全给你掀了。那玩意儿不是回收,是制造事故。
真正能用的回收,逻辑得是“换”,不是“抢”。先监测,每十秒扫一次,鼠标动不动,键盘敲没敲,NX窗口在不在最前面,三个条件连续十几分钟全不满足,才标记疑似闲置。然后不是lmremove,是给客户端发指令,让它释放许可但把会话冻结在本地缓存里,用户界面纹丝不动。人回来动一下鼠标,后台一秒多钟重新checkout,状态接着刚才的走。苏州一家航空结构件厂78个许可,112个设计师,以前下午排队四十分钟起步,把闲置阈值从二十分钟压到十二分钟之后,排队掉到六分钟,平均每个许可一天轮转将近五趟。许可数量没变,只是Token开始流动了。
但别以为开了回收就万事大吉。大型装配体是回收的头号敌人,一个一千多零件的session,你冻结再恢复,重载要十几秒,用户当场就能感觉到卡顿。这种session得单独加白名单,阈值拉到六十分钟,只提醒不冻结,不然你省下的那点Token还不够挨骂的。

比闲置更隐蔽的是“伪池化”。集团型企业五个研发中心各管各的license server,A中心排队排到楼道里,B中心下午三点闲置率百分之四十一,两边隔一栋楼,许可老死不相往来。把服务器物理合并到一个池子之后,高峰期利用率从百分之五十八拉到百分之九十四,同城延迟不到一毫秒,跨省二十毫秒,checkout从八十毫秒变一百二十毫秒,用户根本感觉不到。还搞“设计部五十个、仿真部三十个”这种固定配额,上午设计部忙死仿真部闲着,下午反过来,纯粹是自己给自己添堵。
武汉那家新能源车企的事我印象很深。两百个NX许可,高峰期工程师排队两小时,采购单都准备签字了。我翻后台日志,两百个许可里一百一十七个连使用登记都没有,百分之二十三是离职员工的僵尸账号,账号还在,token还在被“占用”,人早就走了。CAM高级仿真模块买了百分之三十五的份额,实际使用率百分之十二。把这些清出去,把闲置回收开起来,等效多挤出来七十多个可用席位,一分钱新许可没买。财务看着省下来的两百多万,采购单默默收回去了。
所以下次早高峰有人拍桌子说NX不够用,别急着找西门子报价。先去license server上跑一把lmutil lmstat,看看那行feature下面挂着的名字,有多少是三个月没登录过的,有多少是开着一个空NX窗口挂了一上午的。先把这个数看清,再谈买不买。