在slurm中, 抢占模式: SUSPEND中提到跟踪内存资源,才能挂起job .如何配置跟踪内存.
时间: 2023-06-27 19:06:54 浏览: 249
dask-jobqueue:在PBS,SLURM和SGE等工作调度程序上部署Dask
在 Slurm 中,可以使用 cgroups(control groups)来限制一个任务(包括内存,CPU,IO 等资源)的使用。当一个任务超出了分配给它的资源限制时,它将被挂起或终止,以避免对系统的影响。
下面是如何配置跟踪内存的步骤:
1. 确保您的系统已安装 cgroups 相关软件包。您可以使用以下命令检查:
```
$ yum search cgroups
```
2. 配置 cgroups。您需要配置 /etc/cgconfig.conf 文件和 /etc/cgrules.conf 文件。这些文件中的详细信息可以在 cgroups 的官方文档中找到。
3. 配置 Slurm,以便它能够使用 cgroups。您需要编辑 /etc/slurm/slurm.conf 文件,将以下行添加到文件末尾:
```
# Use cgroups for resource limits
TaskPlugin=task/cgroup
```
4. 启用 cgroups 功能。您可以使用以下命令启用:
```
$ systemctl enable cgconfig.service
$ systemctl start cgconfig.service
$ systemctl enable cgred.service
$ systemctl start cgred.service
```
5. 确认 cgroups 功能是否已启用。您可以使用以下命令检查:
```
$ systemctl status cgconfig.service
$ systemctl status cgred.service
```
6. 现在您可以在 Slurm 中使用 SUSPEND 抢占模式并跟踪内存资源。您可以使用以下命令提交一个任务并使用 SUSPEND 抢占模式:
```
$ sbatch --mem-per-cpu=1000M --cpus-per-task=2 --gres=gpu:1 --partition=gpu --job-name=myjob --signal=B:USR1@60 --requeue --wrap="python myscript.py"
```
在这个例子中,我们使用了 `--mem-per-cpu` 标志来限制每个 CPU 的内存使用量,使用了 `--signal` 标志来设置一个信号,在任务运行 60 秒后发送该信号,使用了 `--requeue` 标志使任务在被挂起后自动重新排队,使用了 `--wrap` 标志来指定要运行的脚本。
如果任务超出了内存限制,它将被挂起。您可以使用以下命令来恢复任务:
```
$ scontrol update jobid=<jobid> state=running
```
其中 `<jobid>` 是任务的 ID。
希望这能帮助您配置跟踪内存资源并在 Slurm 中使用 SUSPEND 抢占模式。
阅读全文