【问题标题】:"OSError: Cannot allocate memory" does force stop to main process on sagemaker“OSError:无法分配内存”确实会强制停止 sagemaker 上的主进程
【发布时间】:2022-01-11 20:08:17
【问题描述】:

我正在开始一些内存不足的多处理作业。我可以看到(在 sagemaker 容器中在线)它引发了 OSError,但整个过程并未终止。我不确定该怪什么(sagemaker、docker、多处理本身)。什么可能导致此类错误无法向上“处理”?

【问题讨论】:

    标签: python multithreading amazon-sagemaker


    【解决方案1】:

    当子进程失败时,确保你的主进程存在:
    当 SageMaker 运行您的容器时,例如作为训练作业的一部分,它会启动容器并等待容器退出。它不知道您的流程在做什么。
    当其中一个子进程失败时让容器退出,make sure your main process detect this case and exits
    注意:容器的主要运行进程是 Dockerfile 末尾的 ENTRYPOINT 和/或 CMD - 如果带上你自己的脚本训练,它将是你的 train.py。

    【讨论】:

    • 在我的例子中,它是主要的 Python 脚本(在处理器容器中),它通过标准 pool 进行一些多处理。在这种情况下,您会期望它知道不?
    • 容器需要退出,只有在主进程存在时才会退出,这取决于你。
    猜你喜欢
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    相关资源
    最近更新 更多