[IBM Spectrum LSF DOC]命令与配置参考速查
Dec 17, 2025
|
wanlinwang
|
11 min read
本文提供IBM Spectrum LSF常用命令、配置参数和环境变量的快速参考,便于管理员和用户日常查阅。
核心用户命令
作业提交和管理
命令
用途
常用选项
bsub
提交批处理作业
-q 队列, -n 核心数, -J 作业名, -o 输出文件
bjobs
查看作业状态
-a 所有作业, -l 详细信息, -u 用户, -p 挂起原因
bkill
终止作业
-s 信号, -r 作业ID范围
bstop
暂停作业
作业ID
bresume
恢复作业
作业ID
bpeek
查看作业输出
-f 实时跟踪
bhist
作业历史
-l 详细, -a 所有
bacct
作业会计
-l 详细资源使用
bmod
修改作业参数
-q 改队列, -n 改核心数
集群信息查询
命令
用途
说明
bhosts
查看主机状态
显示主机负载和可用资源
bqueues
查看队列信息
显示队列状态和限制
lsid
集群标识
显示集群名和Master主机
lsload
主机负载
实时负载指标
lshosts
主机配置
静态主机信息
lsinfo
资源定义
显示可用资源类型
busers
用户信息
用户和用户组
交互式任务
命令
用途
示例
lsrun
远程执行
lsrun -m hostA command
lsgrun
组播执行
lsgrun -m "host[1-5]" uptime
lsplace
查找可用主机
lsplace -n 4
核心管理命令
集群管理 (lsadmin)
1
2
3
4
5
6
7
lsadmin limstartup # 启动LIM
lsadmin limshutdown # 关闭LIM
lsadmin limrestart # 重启LIM
lsadmin reconfig # 重新加载lsf.shared/lsf.cluster
lsadmin ckconfig # 检查配置语法
lsadmin limlock # 锁定集群
lsadmin limunlock # 解锁集群
批处理管理 (badmin)
1
2
3
4
5
6
7
8
9
badmin hstartup # 启动mbatchd
badmin hshutdown # 关闭mbatchd
badmin mbdrestart # 重启mbatchd
badmin reconfig # 重新加载lsb.*配置
badmin ckconfig # 检查配置语法
badmin qopen <queue> # 打开队列
badmin qclose <queue> # 关闭队列
badmin hopen <host> # 打开主机
badmin hclose <host> # 关闭主机
关键配置文件
lsf.conf - 全局配置
1
2
3
4
5
6
7
8
9
LSF_TOP=/opt/ibm/lsf # 安装目录
LSF_CONF=/opt/ibm/lsf/conf/lsf.conf # 配置文件路径
LSF_ENVDIR=/opt/ibm/lsf/conf # 配置目录
LSF_SERVERDIR=/opt/ibm/lsf/10.1/linux3.10-glibc2.17-x86_64/etc
LSF_BINDIR=/opt/ibm/lsf/10.1/linux3.10-glibc2.17-x86_64/bin
LSF_LOGDIR=/opt/ibm/lsf/log # 日志目录
LSF_MAIL_PROG=/usr/bin/mail # 邮件程序
LSB_MAILTO=lsfadmin # 默认收件人
LSF_MASTER_LIST="master01 master02" # 主控列表
lsb.params - 批处理参数
1
2
3
4
5
6
7
MBD_SLEEP_TIME=10 # mbatchd调度间隔(秒)
JOB_ACCEPT_INTERVAL=1 # 作业接受间隔(秒)
MAX_JOB_NUM=100000 # 最大作业数
DEFAULT_QUEUE=normal # 默认队列
MAX_SBD_FAIL=3 # sbatchd失败重试
PREEMPTION_POLICY=user_grp # 抢占策略
JOB_TERMINATE_INTERVAL=10 # 作业终止间隔
lsb.queues - 队列配置模板
1
2
3
4
5
6
7
8
9
10
11
12
13
Begin Queue
QUEUE_NAME = normal
PRIORITY = 30 # 队列优先级(0-100)
NICE = 20 # Unix nice值
USERS = all # 允许的用户
HOSTS = all # 允许的主机
RUN_WINDOW = () # 运行时间窗口
DESCRIPTION = Normal priority queue
RUNLIMIT = 24:00 # 运行时长限制
MEMLIMIT = 64G # 内存限制
CPULIMIT = 48:00 # CPU时间限制
PROCESSLIMIT = 256 # 进程数限制
End Queue
lsb.hosts - 主机配置
1
2
3
4
5
Begin Host
HOST_NAME MXJ r15s r1m r15m tmp DISPATCH_WINDOW
compute01 20 - - - - ()
compute02 20 - - - - (5:18:00-8:00) # 时间窗口
End Host
lsb.users - 用户配置
1
2
3
4
5
6
7
8
9
10
11
12
Begin UserGroup
GROUP_NAME USERS
admin (admin1 admin2)
developers (dev1 dev2 dev3)
End UserGroup
Begin User
USER_NAME MAX_JOBS SHARES MAX_PEND
admin 100 30 200
developers 50 20 100
default 20 10 50
End User
环境变量
核心环境变量
1
2
3
4
5
6
7
8
9
10
LSF_ENVDIR # 配置文件目录
LSF_BINDIR # LSF命令目录
LSF_SERVERDIR # LSF守护进程目录
LSF_LOGDIR # 日志目录
LSB_JOBID # 当前作业ID(在作业脚本中可用)
LSB_JOBINDEX # 作业阵列索引
LSB_HOSTS # 分配的主机列表
LSB_MCPU_HOSTS # 主机和CPU分配
LSB_QUEUE # 作业所在队列
LSB_JOBNAME # 作业名称
设置环境
1
2
3
4
5
6
# 在profile中设置
source /opt/ibm/lsf/conf/profile.lsf
# 或手动设置
export LSF_ENVDIR = /opt/ibm/lsf/conf
export PATH = $LSF_BINDIR :$PATH
资源需求字符串语法
select 选择表达式
1
2
3
4
5
6
7
8
9
10
11
# 选择有足够内存的主机
-R "select[mem>8000]"
# 选择特定类型主机
-R "select[type==linux]"
# 组合条件
-R "select[mem>16000 && tmp>10000]"
# 使用资源
-R "select[gpu>0]"
rusage 资源使用
1
2
3
4
5
6
7
8
# 请求每进程内存
-R "rusage[mem=4000]"
# 请求临时空间
-R "rusage[tmp=10000]"
# 请求许可证
-R "rusage[license_tool=1]"
span 分布策略
1
2
3
4
5
6
7
8
# 所有进程在同一主机
-R "span[hosts=1]"
# 每主机固定进程数
-R "span[ptile=16]"
# 平衡分布
-R "span[slots]"
作业状态码
状态
含义
说明
PEND
Pending
挂起等待调度
RUN
Running
正在运行
DONE
Done
成功完成
EXIT
Exited
异常退出
SSUSP
System Suspended
系统挂起
USUSP
User Suspended
用户挂起
PSUSP
Pending Suspended
挂起作业被暂停
WAIT
Waiting
等待依赖满足
ZOMBI
Zombie
僵尸状态
常用bsub选项速查
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 基本提交
bsub ./job.sh
# 队列和资源
bsub -q normal -n 16 ./job.sh
# 内存请求
bsub -R "rusage[mem=8000]" ./job.sh
# 作业名称和输出
bsub -J "my_job" -o output.%J -e error.%J ./job.sh
# 作业依赖
bsub -w "done(12345)" ./next_job.sh
# 作业阵列
bsub -J "array[1-100]" ./process.sh
# 并行作业
bsub -n 32 -R "span[ptile=16]" mpirun ./mpi_app
# 交互式作业
bsub -Is bash
# 邮件通知
bsub -u user@example.com -N ./long_job.sh
# 时间限制
bsub -W 2:00 ./short_job.sh # 2小时墙钟时间
# GPU作业
bsub -gpu "num=2" ./cuda_app
常用bjobs选项速查
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 查看当前作业
bjobs
# 所有作业(包括历史)
bjobs -a
# 特定用户
bjobs -u username
# 详细信息
bjobs -l 12345
# 挂起原因
bjobs -p
# JSON输出
bjobs -json
# 自定义格式
bjobs -o "jobid user stat queue exec_host"
# 宽格式输出
bjobs -w
日志文件位置
日志文件
内容
位置
lim.log.主机名
LIM日志
$LSF_LOGDIR/
res.log.主机名
RES日志
$LSF_LOGDIR/
mbatchd.log.主机名
mbatchd日志
$LSF_LOGDIR/
mbschd.log.主机名
mbschd调度日志
$LSF_LOGDIR/
sbatchd.log.主机名
sbatchd日志
$LSF_LOGDIR/
lsb.events
作业事件日志
$LSF_LOGDIR/
lsb.acct
作业会计日志
$LSF_LOGDIR/
端口配置
1
2
3
4
5
# lsf.conf中配置
LSF_LIM_PORT=7869 # LIM端口
LSB_MBD_PORT=6878 # mbatchd端口
LSB_SBD_PORT=6879 # sbatchd端口
LSF_AUTH_DAEMONS=9988 # 认证端口
许可证管理
1
2
3
4
5
6
7
8
# 查看许可证资源
lsinfo -R
# 提交需要许可证的作业
bsub -R "rusage[vcs_license=1]" ./simulation
# 查看许可证使用
bjobs -R "rusage[vcs_license>0]"
故障排查速查
检查集群健康
1
2
3
4
5
lsid # 集群基本信息
badmin showstatus # mbatchd状态
lsadmin limstatus # LIM状态
bhosts # 主机状态
bqueues # 队列状态
查看作业问题
1
2
3
4
bjobs -p 12345 # 挂起原因
bhist -l 12345 # 作业历史
bacct -l 12345 # 资源使用
bpeek 12345 # 查看输出
日志检查
1
2
tail -f $LSF_LOGDIR /mbatchd.log.master # mbatchd日志
tail -f $LSF_LOGDIR /lsb.events # 作业事件
性能调优参数
1
2
3
4
5
6
# lsb.params
MBD_SLEEP_TIME=10 # 调度周期,降低减少延迟
SBD_SLEEP_TIME=30 # sbatchd报告周期
JOB_INCLUDE_POSTPROC=Y # 后处理脚本支持
MAX_JOB_ARRAY_SIZE=10000 # 最大作业阵列大小
PREEMPT_FOR=RUNLIMIT|MEMLIMIT # 抢占触发条件
快速参考卡片
新用户5分钟上手
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1. 提交作业
bsub ./my_script.sh
# 2. 查看状态
bjobs
# 3. 查看输出
bpeek <JOB_ID>
# 4. 终止作业
bkill <JOB_ID>
# 5. 查看历史
bhist
管理员日常检查
1
2
3
4
5
6
# 早晨检查清单
lsid # 集群运行?
badmin showstatus # Master健康?
bhosts | grep -v ok # 有问题主机?
bjobs -p | head # 为什么挂起?
tail $LSF_LOGDIR /mbatchd.log.* # 有错误?
总结
本参考文档涵盖了LSF的核心命令、配置参数和常用模式。建议将常用命令添加到shell别名或快速启动脚本中,以提高日常工作效率。
完整的命令参考请查阅LSF命令参考手册 。
参考资源 :
Support the Creator
If you found this article helpful, consider supporting.