跳到主要内容

FAQ

集群配置FAQ

1. 发生重配置的条件

在集群没有配置头节点HA的时候, 集群在以下条件下会触发重配置:

  • 用户对集群进行了变更, 例如: 添加/删除节点, 修改配置等.
  • 用户主动使用了"重新配置"功能.
  • 管理栈无法从必要的服务程序获取信息, 通过重配置来重新获取关键信息. 包括以下服务:
    • fs-scale: 用于获取集群任务信息, 维护集群节点DRAIN状态等.
    • fs-statesvc: 用于收集任务信息, 分析任务状态等.

如果集群配置了头节点HA, 则不再进行自动的重配置.

调度器命令FAQ

1. 优先级如何确定?如何调整优先级?

查看作业优先级

squeue #查看作业信息,PRIORITY数值越大,优先级越高
JOBID PARTITION NAME USER ST TIME NODES NODELIST CPUS REASON PRIORITY TIMELIMIT ACCOUNT
12345 compute my_job user1 R 02:15 1 node01 4 None 1000 01:00:00 myaccount
12346 compute another_job user2 PD 00:10 1 (None) 4 Resources 900 02:00:00 otheraccount
12347 compute test_job user1 CG 00:05 1 node02 4 None 950 01:30:00 myaccount

squeue -j <job_id> #指定作业ID,包括优先级

squeue -u <username> #指定用户,包括优先级

scontrol show job <job_id> #指定作业ID,查询作业详细信息,包括优先级

调整优先级

#提交任务设置优先级
sbatch --priority=10000 my_script.sh #1000代表优先级,值越大,优先级越高

#管理员调整已提交的作业优先级
scontrol update jobid=12345 priority=2000 #把作业ID为 12345 的优先级调整为 2000。

负载阈值FAQ

1. stop任务和恢复任务的原理是什么?

在调度器层面,先发送SIGTSTP信号(可被trap),两秒钟后发送SIGSTOP信号(不可trap)。

2. 所有的任务都能恢复么?

因负载阈值的LoadstopMem或LoadstopUt参数停止的任务,当负载阈值调整后都可以自动恢复,继续执行作业。

3. FCP中如何配置负载阈值?

负载阈值支持按分区设置自定义参数,支持在新建分区和编辑分区时设置。以下是自定义参数设置界面:

  • 在新建集群时,在计算分区高级配置-自定义参数中设置。
  • 集群创建后,可以在新建计算分区高级配置-自定义参数中设置。
  • 集群创建/计算分区创建成功后,可以在分区列表-高级配置-编辑自定义参数中。

设置示例:

img.png

具体支持设置的参数及参数设置说明见负载阈值介绍文档

4. 被stop的任务在调度器层面是否释放计算资源?实际系统层面呢?

内存不被释放,CPU被释放。

5. loadstop的任务与scontrol suspend命令以及scancel -s SIGSTOP/SIGTSTP的区别?

  • loadstop: 这是一个功能,用于在特定负载条件下自动停止任务。它通常用于动态管理作业,以防止集群负载过高。被停止的作业会进入 ST 状态,内存仍然保留,CPU会被释放。
  • scontrol suspend: 这是一个手动命令,用于暂停指定的作业。执行该命令后,作业会被挂起。节点资源被释放,用户可以在需要时使用 scontrol resume 恢复作业。
  • scancel -s SIGSTOP/SIGTSTP: 这是一个用于发送信号的命令,可以通过 scancel 向特定作业发送 SIGSTOP 或 SIGTSTP 信号,强制暂停作业。SIGSTOP 是无法被捕获的信号,作业会立即停止;而 SIGTSTP 是可捕获的,作业可以选择处理该信号。无法停止batch命令提交的作业。被停止的作业进入ST状态,内存仍然保留,CPU会被释放。

6. 任务停止的顺序策略是什么?

任务停止的顺序策略按照优先级,先停止优先级低的任务。手动更改任务优先级后,负载阈值的自动停止顺序策略不会更改,依旧会按照旧的优先级停止任务。

7. 负载阈值配置是否可以在线修改?

可以在WEB界面-集群管理-分区列表-高级配置编辑自定义参数,具体可参考问题3中的截图。

8. 是否可以手动操作实现类似loadstop中停止任务的效果(资源不释放)?

不可以。

9. 用户手动操作与负载阈值中的自动操作是否会冲突

不会冲突。

10. 负载阈值中轮询负载和启停任务的间隔时间是多少?

  • 轮询负载的间隔时间: 负载监控(例如自动启停任务)会按设定的时间间隔进行轮询,默认时间为 30秒。
  • 启停节点的间隔时间: 启停节点(如 drain 节点)之间的间隔时间设置为 300秒,即在两次对同一节点的 drain 操作之间需等待 300 秒。

其他FAQ

1. 子进程的处理,cgroup/pgid区别

cgroup 主要关注资源控制和监控,而 pgid 则关注进程的组织和管理。以下是两者的区别:

特性cgrouppgid
定义控制组,用于资源限制和监控进程组 ID,用于标识相关进程的集合
功能限制资源、监控使用量、优先级管理信号管理、作业控制
用途容器管理、多用户资源控制终端作业管理、进程关联管理
适用范围资源管理和限制进程管理和作业控制