华为云AI开发平台ModelArts下载或读取文件报错,提示超时、无剩余空间_云淘科技

问题现象

训练过程中拷贝数据/代码/模型时出现如下报错:

图1 错误日志

原因分析

出现该问题的可能原因如下。

磁盘空间不足。
分布式作业时,有些节点的docker base size配置未生效,容器内“/”根目录空间未达到50G,只有默认的10GB,导致作业训练失败。
实际存储空间足够,却依旧报错“No Space left on device”。

同一目录下创建较多文件,为了加快文件检索速度,内核会创建一个索引表,短时间内创建较多文件时,会导致索引表达到上限,进而报错。

触发条件和下面的因素有关:

文件名越长,文件数量的上限越小
blocksize越小,文件数量的上限越小。( blocksize,系统默认 4096B。总共有三种大小:1024B、2048B、4096B)
创建文件越快,越容易触发(机制大概是:有一个缓存,这块大小和上面的1和2有关,目录下文件数量比较大时会启动,使用方式是边用边释放)

处理方法

可以参照日志提示”write line error”文档进行修复。
如果是分布式作业有的节点有错误,有的节点正常,建议提工单请求隔离有问题的节点。
如果是触发了欧拉操作系统的限制,有如下建议措施。

分目录处理,减少单个目录文件量。
减慢创建文件的速度。
关闭ext4文件系统的dir_index属性,具体可参考:https://access.redhat.com/solutions/29894,(可能会影响文件检索性能)。

建议与总结

在创建训练作业前,推荐您先使用ModelArts开发环境调试训练代码,避免代码迁移过程中的错误。

直接使用线上notebook环境调试请参考使用JupyterLab开发模型。
配置本地IDE(Pycharm或者VSCode)联接云上环境调试请参考使用本地IDE开发模型。

父主题: 内存限制故障

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家