我正在尝试增加用于运行 Nextflow 管道的 Docker 映像的共享内存大小。根据网上的一些指示,我已将以下内容添加到我的配置文件中:
docker {
enabled = true
userEmulation = true
containerOptions = '--shm-size=256m'
}
没有抛出任何错误,并且在 Nextflow 塔中,看起来配置已成功摄取。然而,在训练 pytorch 模型时,我仍然遇到共享内存不足的问题。为了检查我的 shm 大小更改是否实际上做了任何事情,我添加了一个命令来检查 nextflow 进程脚本部分中的大小:df -h /dev/shm,看起来 shm 实际上没有更新 - - 它仍然是默认的 64M,这对于 Docker 来说显然是正常的。
Filesystem Size Used Avail Use% Mounted on
shm 64M 0 64M 0% /dev/shm
几个小时以来我一直在尝试不同的方法,这非常令人沮丧——这是正确的方法吗?我还尝试直接在进程中而不是在顶层配置中设置指令,但这也不起作用。是否有解决方法或其他方法来增加 shm 大小?它阻止我使用多个工作人员运行 pytorch 训练,这意味着我的训练速度非常慢。
谢谢。
docker.runOptions
。例如,您的 nextflow.config
中包含以下内容:
docker {
enabled = true
runOptions = '--shm-size=256m'
}
以及您的
main.nf
中的以下内容:
process test_proc {
debug true
container 'ubuntu:24.04'
"""
df -h /dev/shm
"""
}
workflow {
test_proc()
}
结果:
$ nextflow run main.nf
N E X T F L O W ~ version 24.04.3
Launching `main.nf` [stupefied_shannon] DSL2 - revision: 306a1b97c1
executor > local (1)
[ef/0639d1] process > test_proc [100%] 1 of 1 ✔
Filesystem Size Used Avail Use% Mounted on
shm 256M 0 256M 0% /dev/shm