问题描述
在IBM LSF集群中新增或修改队列后,打开Virtuoso ADE(Analog Design Environment)的 Job Policy Setup 表单,发现队列下拉列表中没有出现新队列。
根本原因:两层”缓存”
Virtuoso ADE的仿真表单队列列表由两个层面共同控制,任何一层未更新都会导致新队列不显示。
第一层:cdsfrb_lsf 进程(LBS Broker)
cdsfrb_lsf 是Cadence Load Balancing Software(LBS)的中间件进程,每个用户在提交主机上运行一个。它负责与IBM LSF通信,并缓存集群信息(包括队列名称)。
关键行为(来源:Cadence ASK):
- 不会自动更新:修改LSF队列后,该进程持有的缓存不会自动刷新。
- 自动退出条件:最后一个客户端断开连接 且 任务表为空后,30分钟自动退出。
- 自动重启:Virtuoso下次需要提交任务时,会自动启动新的
cdsfrb_lsf,此时获取最新的队列信息。
Cadence 原文:“If you have done an update in the LSF queue, you should restart this process. Or wait till it gets killed automatically.”
解决方法:在没有运行中任务时,手动结束该进程:
1
2
3
pkill cdsfrb_lsf
# 或者指定当前用户
kill $(pgrep -u $USER cdsfrb_lsf)
⚠️ 注意:如果有任务正在运行,不要杀掉此进程,否则会影响任务监控。应等任务完成后再操作,或等30分钟自动超时。
第二层:queueNameInclusionList 变量(硬编码列表)
部分站点在 .cdsinit 中通过以下变量限制了可见队列范围:
envSetVal("asimenv.distributed" "queueNameInclusionList" 'string "sim_short sim_long")
如果设置了此变量,新队列即使在LSF中存在,也不会出现在下拉列表中。
⚠️ 队列名必须用空格分隔,不能用逗号——用逗号会导致下拉列表完全不显示。
排查与解决步骤
第一步:检查是否设置了 queueNameInclusionList
在Virtuoso的 CIW(Command Interpreter Window) 中执行:
envGetVal("asimenv.distributed" "queueNameInclusionList")
- 如果返回空字符串,说明未设置此变量,跳到第二步。
- 如果返回非空字符串,说明队列列表被限制,继续第一步处理。
处理 queueNameInclusionList(如已设置)
方法A:在CIW中立即更新(无需重启Virtuoso)
envSetVal("asimenv.distributed" "queueNameInclusionList" 'string "sim_short sim_long new_queue")
执行后重新打开 Job Policy Setup 表单即可看到新队列。
方法B:修改 .cdsinit 并重启Virtuoso(持久生效)
编辑 ~/.cdsinit 或站点级 cdsinit,将新队列加入列表,然后重启Virtuoso。
第二步:重启 cdsfrb_lsf 进程
1
pkill cdsfrb_lsf
第三步:在Virtuoso中刷新
关闭并重新打开 Job Policy Setup 表单,Virtuoso会自动启动新的 cdsfrb_lsf 并获取最新队列列表。
补充:如何确认 Queue 下拉列表可见
在 Job Policy Setup 表单中,Queue 复选框必须勾选,才会显示队列下拉列表。未勾选时,Virtuoso使用LSF默认队列,不显示选择框。
总结
| 层次 | 原因 | 解决方法 |
|---|---|---|
cdsfrb_lsf 进程缓存 |
进程启动后缓存集群队列信息,不自动刷新 | pkill cdsfrb_lsf,或等30分钟自动退出 |
queueNameInclusionList 硬编码 |
.cdsinit 中限定了可见队列列表 |
在CIW执行 envSetVal 更新列表,或修改 .cdsinit 后重启 |
参考资料
- Cadence ASK: What is the cdsfrb_lsf process and why is it orphaned?
- Cadence ASK: FAQ: Managing jobs in Assembler, issues and behavior of Job Policy settings
- Cadence ASK: How to set different job policies or different queues available for ADE Explorer and Assembler
- Cadence ASK: Job Policy Setup in Virtuoso ADE Explorer and Assembler