概述
LSF 使用账户文件来跟踪所有已完成作业的资源分配和使用情况,这是 lsb.acct 文件的主要用途。
lsb.acct 文件特点
- 格式:纯文本文件,每行一条作业记录
- 内容:包含作业提交选项、分配信息、开始时间、结束时间和资源使用情况
- 位置:默认位于
${LSB_SHAREDIR}/<cluster_name>/logdir目录下 - 数量:默认每个集群只有一个
lsb.acct文件
注意:默认情况下,LSF 不启用自动文件归档或轮转机制。
lsb.acct文件会持续增长,占用工作目录空间并影响查询命令(如bacct)的性能。
自动归档配置
自动归档可以通过 lsb.params 中的以下参数触发:
| 参数 | 说明 |
|---|---|
ACCT_ARCHIVE_AGE=<天数> |
当文件创建时间超过指定天数时归档 |
ACCT_ARCHIVE_SIZE=<KB> |
当文件大小超过指定KB时归档 |
ACCT_ARCHIVE_TIME=<hh:mm> |
在每天指定时间自动归档 |
参数互斥规则:
ACCT_ARCHIVE_AGE和ACCT_ARCHIVE_TIME互斥(一个按天计算,一个按具体时间)- 如果同时定义了两者,
ACCT_ARCHIVE_AGE将被忽略 ACCT_ARCHIVE_SIZE可以与其他两个参数共存
归档文件命名规则
当 LSF 归档账户文件时,旧文件会保存为 lsb.acct.n,其中:
n为归档文件的索引号- 索引号越大,文件越旧
lsb.acct.1始终是最新的归档文件
修改参数后需要运行 badmin reconfig 使配置生效。
自动删除配置
使用 MAX_ACCT_ARCHIVE_FILE 参数控制归档文件数量:
1
MAX_ACCT_ARCHIVE_FILE=<数量>
当归档文件总数达到配置的阈值时,LSF 会自动删除最旧的归档文件,防止无限期归档导致磁盘空间不足。
最佳实践指南
性能考量
- 作业完成记录大小因作业特性而异,从几百字节到数万字节不等
- 默认情况下,
bacct命令只读取当前的lsb.acct文件 - 包含 40 万条作业记录的账户文件可能达到 1GB,
bacct可能需要 1 分钟才能完成
建议:为确保 bacct 性能良好,推荐设置 ACCT_ARCHIVE_SIZE=500000(500MB)
场景一:高吞吐量集群
如果集群每天运行大量作业(如百万级别):
- 使用
ACCT_ARCHIVE_TIME防止在当前账户文件中累积过多作业记录 - 将归档时间设置为午夜,避免影响用户查询
1
2
ACCT_ARCHIVE_TIME=23:00
MAX_ACCT_ARCHIVE_FILE=10
适用场景:日吞吐量达 80 万作业,需要保留当天信息并维护 10 天的归档记录
场景二:中等吞吐量集群
如果集群每天处理数千到数万个作业:
- 使用
ACCT_ARCHIVE_AGE基于天数进行归档 - 需要在
bacct性能和记录保留天数之间取得平衡
1
2
3
ACCT_ARCHIVE_AGE=30
ACCT_ARCHIVE_SIZE=500000
MAX_ACCT_ARCHIVE_FILE=24
适用场景:日吞吐量不到 1 万作业,需保留 1 个月的账户记录,每个文件控制在 500MB 以内,归档保留 2 年
MAX_ACCT_ARCHIVE_FILE 设置建议
设置时需考虑:
- 命令性能:
bacct的某些选项(如-C、-D、-S)会搜索整个归档文件,归档越多,命令越慢 - 归档过程影响:LSF 在归档过程中需要重命名归档文件,保留大量归档可能影响用户交互
- 磁盘空间:根据可用空间合理设置归档数量
配置示例
示例一:高吞吐量生产环境
1
2
3
# 每天晚上11点归档,保留10个归档文件
ACCT_ARCHIVE_TIME=23:00
MAX_ACCT_ARCHIVE_FILE=10
示例二:并行计算环境
1
2
3
4
# 30天归档一次,单文件最大500MB,保留24个归档(约2年)
ACCT_ARCHIVE_AGE=30
ACCT_ARCHIVE_SIZE=500000
MAX_ACCT_ARCHIVE_FILE=24
操作步骤
- 编辑
lsb.params文件添加相应参数 - 运行
badmin reconfig使配置生效 - 使用
bparams -a验证配置
1
2
3
4
$ bparams -a | grep ACCT
ACCT_ARCHIVE_SIZE = 500000
ACCT_ARCHIVE_AGE = 30
MAX_ACCT_ARCHIVE_FILE = 24