> For the complete documentation index, see [llms.txt](https://baiyongan.gitbook.io/lsf-handbook/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://baiyongan.gitbook.io/lsf-handbook/parti-ru-men-jie-shao-pian/lsf_introduction/lsf_quick_reference.md).

# 1.5 LSF 快速上手

本文主要是关于 LSF 命令、守护进程、配置文件、日志文件以及重要的集群配置参数的快速介绍。

## Unix 及 Linux 系统下的安装目录示意图

![Sample UNIX and Linux installation directories](https://www.ibm.com/support/knowledgecenter/SSWRJV_10.1.0/lsf_quick_reference/lsf_unix_dirmap.jpg)

## 守护进程的错误日志文件

守护进程的错误日志文件，存储在由 **LSF\_LOGDIR** 变量定义的文件目录下面，该变量值在 lsf.conf 文件中指定。

| LSF base system daemon log files | LSF batch system daemon log files |
| -------------------------------- | --------------------------------- |
| pim.log.host\_name               | mbatchd.log.host\_name            |
| res.log.host\_name               | sbatchd.log.host\_name            |
| lim.log.host\_name               | mbschd.log.host\_name             |

如果在 ego.conf 文件中定义了变量 **EGO\_LOGDIR** ，那么 lim.log.host\_name 文件则存储在由变量 EGO\_LOGDIR 指定的文件目录中。

## 配置文件

lsf.conf, lsf.shared, 和 lsf.cluster.cluster\_name 文件， 位于由 **LSF\_CONFDIR** 变量定义的文件目录下面，该变量值在 lsf.conf 文件中指定。

lsb.params, lsb.queues, lsb.modules, 和 lsb.resources 文件，位于 **LSB\_CONFDIR**/cluster\_name/configdir/ 目录下面。

| 文件                        | 描述                                        |
| ------------------------- | ----------------------------------------- |
| install.config            | LSF 的安装与配置选项                              |
| lsf.conf                  | 描述集群配置和操作的通用环境配置文件                        |
| lsf.shared                | 所有群集共享的定义文件。用于定义群集名称、主机类型、主机型号和站点定义的资源    |
| lsf.cluster.cluster\_name | 用于定义主机、管理员和站点定义的共享资源的位置的集群配置文件            |
| lsb.applications          | 定义应用程序配置文件，来指定同类型作业的公共参数                  |
| lsb.params                | 配置 LSF 批处理参数                              |
| lsb.queues                | 批处理队列配置文件                                 |
| lsb.resources             | 配置资源分配限制、导出和资源使用限制                        |
| lsb.serviceclasses        | 将LSF集群中的服务级别协议（SLA）定义为服务类，该服务类定义了 SLA 的属性 |
| lsb.users                 | 配置用户组、用户和用户组的分层公平共享，以及用户和用户组的作业槽数限制       |

## lsf.conf 配置文件中的集群配置参数

| 参数                     | 描述                                                                    | Unix 默认值                                  |
| ---------------------- | --------------------------------------------------------------------- | ----------------------------------------- |
| **LSF\_BINDIR**        | 包含 LSF 用户命令的目录，由相同类型的所有主机共享                                           | LSF\_TOP/version/OStype/bin               |
| **LSF\_CONFDIR**       | 所有 LSF 配置文件的目录                                                        | LSF\_TOP/conf                             |
| **LSF\_ENVDIR**        | 包含 lsf.conf 文件的目录。必须由root 用户所拥有。                                      | /etc (if **LSF\_CONFDIR** is not defined) |
| **LSF\_INCLUDEDIR**    | 包含 LSF API 头文件 lsf.h 和 lsbatch.h的目录                                   | LSF\_TOP/version/include                  |
| **LSF\_LIBDIR**        | LSF 库，由相同类型的所有主机共享                                                    | LSF\_TOP/version/OStype/lib               |
| **LSF\_LOGDIR**        | （可选）LSF 守护程序日志的目录。必须由 root 拥有。                                        | /tmp                                      |
| **LSF\_LOG\_MASK**     | 从 LSF 命令记录错误消息的级别                                                     | **LOG\_WARNING**                          |
| **LSF\_MANDIR**        | 包含 LSF 手册页的目录                                                         | LSF\_TOP/version/man                      |
| **LSF\_MISC**          | 示例C程序和Shell脚本，以及外部LIM（**elim**）的模板                                    | LSF\_TOP/version/misc                     |
| **LSF\_SERVERDIR**     | 由 LSF 守护程序启动的所有服务器二进制文件和 Shell 脚本以及外部可执行文件的目录。必须由root拥有，并由相同类型的所有主机共享 | LSF\_TOP/version/OStype/etc               |
| **LSF\_TOP**           | 顶级安装目录。 LSF\_TOP 的路径必须共享，并且集群中的所有主机都可以访问。它不能是根目录（/）。                  | Not definedRequired for installation      |
| **LSB\_CONFDIR**       | LSF批处理配置目录的目录，包含用户和主机列表，操作参数和批处理队列                                    | LSF\_CONFDIR/lsbatch                      |
| **LSF\_LIVE\_CONFDIR** | LSF 实时重新配置目录的目录，该目录由 **bconf** 命令编写。                                  | LSB\_SHAREDIR/cluster\_name/live\_confdir |
| **LSF\_SHAREDIR**      | 每个集群的 LSF 批处理作业历史记录和记帐日志文件的目录，必须由首要的 LSF 管理员拥有                        | LSF\_TOP/work                             |
| **LSF\_LIM\_PORT**     | 用于与 lim 守护程序进行通信的 TCP 服务端口                                            | 7879                                      |
| **LSF\_RES\_PORT**     | 用于与 **res** 守护程序通信的 TCP 服务端口                                          | 6878                                      |
| **LSF\_MBD\_PORT**     | 用于与 **mbatchd** 守护程序进行通信的 TCP 服务端口                                    | 6881                                      |
| **LSF\_SBD\_PORT**     | 用于与 **sbatchd** 守护程序进行通信的TCP服务端口                                      | 6882                                      |

## 管理命令

注：只有 LSF 管理员和 root 用户可以使用这些命令。

| 命令              | 描述                                                                              |
| --------------- | ------------------------------------------------------------------------------- |
| **lsadmin**     | LSF 管理员工具，用于控制 LSF 集群中 LIM 和 RES 守护程序的运行，**lsadmin help** 显示所有子命令               |
| **lsfinstall**  | 使用 install.config 输入文件安装 LSF                                                    |
| **lsfrestart**  | 在本地集群中的所有主机上重新启动 LSF 守护程序                                                       |
| **lsfshutdown** | 关闭本地集群中所有主机上的 LSF 守护程序                                                          |
| **lsfstartup**  | 在本地集群中的所有主机上启动 LSF 守护程序                                                         |
| **badmin**      | 用于控制 LSF 批处理系统（**sbatchd**，**mbatchd**，主机和队列）的 LSF 管理工具 **badmin help** 显示所有子命令 |
| **bconf**       | 更改活动内存中的 LSF 配置                                                                 |

## 守护进程

| 进程名         | 描述                                                                                                               |
| ----------- | ---------------------------------------------------------------------------------------------------------------- |
| **lim**     | Load Information Manager (LIM): 负载信息管理器：收集有关集群中所有服务器主机的负载和资源信息，并通过 LSLIB 为应用程序提供主机选择服务。 LIM 维护有关静态系统资源和动态负载索引的信息 |
| **mbatchd** | Master Batch Daemon (MBD): 主批处理守护程序：接受并保存所有批处理作业。 MBD通过联系 主LIM 定期检查所有服务器主机上的负载索引。                                |
| **mbschd**  | Master Batch Scheduler Daemon：主批处理调度守护程序：执行LSF的调度功能，并将作业调度决策发送到 MBD 以进行调度。 该服务在 LSF 主服务器主机上运行                    |
| **sbatchd** | Slave Batch Daemon (SBD)：从属批处理守护程序（SBD）：接受来自 MBD 的作业执行请求，并监视作业进度。 控制作业执行，强制执行批处理策略，将作业状态报告给 MBD，然后启动 MBD。        |
| **pim**     | Process Information Manager (PIM): 进程信息管理器（PIM）：监视提交的作业在运行时所使用的资源。 PIM 用于强制执行资源限制和负载阈值以及公平分配调度。                  |
| **res**     | Remote Execution Server (RES): 远程执行服务器（RES）：接受来自所有负载共享应用程序的远程执行请求，并处理远程主机上的I / O以进行负载共享过程。                       |

## 用户命令

### 查看集群信息的命令

| 命令          | 描述                       |
| ----------- | ------------------------ |
| **bhosts**  | 显示主机及其静态和动态资源            |
| **blimits** | 显示正在运行的作业的资源分配限制的相关信息    |
| **bparams** | 显示可调批次系统参数的相关信息          |
| **bqueues** | 显示批处理队列的相关信息             |
| **busers**  | 显示用户和用户组的相关信息            |
| **lshosts** | 显示主机及其静态资源信息             |
| **lsid**    | 显示当前的 LSF 版本号，集群名称和主控主机名 |
| **lsinfo**  | 显示负载分担配置信息               |
| **lsload**  | 显示主机的动态负载索引              |

### 监测作业与任务的命令

| 命令          | 描述                            |
| ----------- | ----------------------------- |
| **bacct**   | 报告已完成的 LSF 作业的会计统计数据          |
| **bapp**    | 显示附加到应用程序配置文件的作业的相关信息         |
| **bhist**   | 显示作业的相关历史信息                   |
| **bjobs**   | 显示作业的相关信息                     |
| **bpeek**   | 显示未完成作业的标准输出和标准错误             |
| **bsla**    | 显示服务类配置的相关信息，以用于面向目标的服务级别协议调度 |
| **bstatus** | 读取或设置外部作业状态消息和数据文件            |

### 提交与控制作业的命令

| 命令           | 描述                   |
| ------------ | -------------------- |
| **bbot**     | 移动正在等待的作业到队列的末尾      |
| **bchkpnt**  | 检查点可检查的工作            |
| **bkill**    | 向作业发送信号，一般用于结束作业     |
| **bmig**     | 迁移可检查点的或可重新运行的作业     |
| **bmod**     | 修改作业的提交选项            |
| **brequeue** | 杀死并重新安排作业            |
| **bresize**  | 释放槽位并取消挂起的作业调整大小分配请求 |
| **brestart** | 重新启动检查点作业            |
| **bresume**  | 恢复暂停的作业              |
| **bstop**    | 暂停作业                 |
| **bsub**     | 提交作业                 |
| **bswitch**  | 将未完成的作业从一个队列移至另一队列   |
| **btop**     | 移动正在等待的作业到队列首部       |

## bsub 命令

**bsub** \[options] command \[arguments] 命令中的部分选项

| 选项                                                                                                                                                   | 描述                                                                                          |
| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| **-ar**                                                                                                                                              | 指定作业可自动调整大小                                                                                 |
| **-H**                                                                                                                                               | 提交时将工作保持在 PSUSP 状态                                                                          |
| **-I\|-Ip\|-Is**                                                                                                                                     | 提交批处理交互式作业。 **-Ip** 创建伪终端。 **-is** 在shell模式下创建一个伪终端。                                        |
| **-K**                                                                                                                                               | 提交作业并等待作业完成                                                                                 |
| **-r**                                                                                                                                               | 使作业可重新运行                                                                                    |
| **-x**                                                                                                                                               | 排他执行                                                                                        |
| **-app** application\_profile\_name                                                                                                                  | 将作业提交到指定的应用程序配置文件                                                                           |
| **-b** begin\_time                                                                                                                                   | 在\[\[month：] day：]：minute 格式的指定日期和时间或之后调度作业                                                 |
| **-C** core\_limit                                                                                                                                   | 为属于此作业的所有进程设置每个进程（soft）核心文件的大小限制（KB）                                                        |
| **-c** cpu\_time\[/host\_name \| /host\_model]                                                                                                       | 限制作业可以使用的总CPU时间。 CPU时间的格式为\[hour:]minutes                                                   |
| **-cwd** "current\_working\_directory"                                                                                                               | 指定作业的当前工作目录                                                                                 |
| **-D** data\_limit                                                                                                                                   | 为属于作业的每个进程设置每个进程（soft）数据段的大小限制（KB）                                                          |
| **-E** "pre\_exec\_command \[arguments]"                                                                                                             | 在作业运行之前，在执行主机上运行指定的pre-exec命令                                                               |
| **-Ep** "post\_exec\_command \[arguments]"                                                                                                           | 作业完成后，在执行主机上运行指定的post-exec命令                                                                |
| **-e** error\_file                                                                                                                                   | 将标准错误输出附加到文件                                                                                |
| **-eo** error\_file                                                                                                                                  | 将作业的标准错误输出覆盖到指定文件                                                                           |
| **-F** file\_limit                                                                                                                                   | 为属于作业的每个进程设置每个进程（soft）文件大小限制（KB）                                                            |
| **-f** "local\_file op\[remote\_file]" ...                                                                                                           | 在本地（提交）主机和远程（执行）主机之间复制文件。op是>，<，<<，> <，<>之一                                                 |
| **-i** input\_file \| **-is** input\_file                                                                                                            | 从指定文件获取作业的标准输入                                                                              |
| **-J** "job\_name\[index\_list]%job\_slot\_limit"                                                                                                    | 为作业分配指定的名称。 作业数组 index\_list  的格式 start \[-end \[：step]]，而 ％job\_slot\_limit 是可以同时运行的最大作业数。 |
| **-k** "chkpnt\_dir \[chkpnt\_period]\[method=method\_name]"                                                                                         | 使作业可检查，并指定检查点目录，以分钟为单位的时间段和方法                                                               |
| **-M** mem\_limit                                                                                                                                    | 设置每个进程（soft）的内存限制（KB）                                                                       |
| **-m** "host\_name \[@cluster\_name]\[\[!] \| +\[pref\_level]] \| host\_group\[\[!] \|+\[pref\_level]] \| compute\_unit\[\[!] \|+\[pref\_level]]..." | 在指定的主机之一上运行作业。 主机或组的名称后的加号（+）表示首选项。 可选地有，正整数表示偏好级别。 数字越高表示偏好越大。                             |
| **-n** min\_proc\[,max\_proc]                                                                                                                        | 指定并行作业所需的最小和最大处理器数量                                                                         |
| **-o** output\_file                                                                                                                                  | 将标准输出附加到文件                                                                                  |
| **-oo** output\_file                                                                                                                                 | 将作业的标准输出覆盖到指定文件                                                                             |
| **-p** process\_limit                                                                                                                                | 限制整个作业的进程数量                                                                                 |
| **-q** "queue\_name ..."                                                                                                                             | 将作业提交到指定的队列之一                                                                               |
| **-R** "res\_req" \[-R "res\_req" ...]                                                                                                               | 指定主机资源要求                                                                                    |
| **-S** stack\_limit                                                                                                                                  | 为属于作业的每个进程设置每个进程（soft）堆栈段大小限制（KB）                                                           |
| **-sla** service\_class\_name                                                                                                                        | 指定要在其中运行作业的服务类                                                                              |
| **-T** thread\_limit                                                                                                                                 | 设置整个作业的并发线程数限制                                                                              |
| **-t** term\_time                                                                                                                                    | 以 \[\[month：] day：] hour：minute 的形式指定作业终止的截止日期                                              |
| **-v** swap\_limit                                                                                                                                   | 设置整个作业的总进程虚拟内存限制（KB）                                                                        |
| **-W** run\_time\[/host\_name \| /host\_model]                                                                                                       | 以\[hour：] minute形式设置作业的运行时限制                                                                |
| **-h**                                                                                                                                               | 将命令用法打印到 stderr 并退出                                                                         |
| **-V**                                                                                                                                               | 将 LSF 发行版本打印到 stderr 并退出                                                                    |
