
# 训练作业使用MoXing复制数据较慢，重复打印日志
#### 问题现象
- ModelArts训练作业使用MoXing复制数据较慢。
- 重复打印日志"INFO:root:Listing OBS"。
 
#### 原因分析
1. 复制数据慢的可能原因如下：
   - 直接从OBS上读数据会造成读数据变成训练的瓶颈，导致迭代缓慢。
   
   - 由于环境或网络问题，读OBS时遇到读取数据失败情况，从而导致整个作业失败。
    
2. 重复打印日志，该日志表示正在读取远端存在的文件，当文件列表读取完成以后，开始下载数据。如果文件比较多，那么该过程会消耗较长时间。
 
#### 处理方法
在创建训练作业时，数据可以保存到OBS上。不建议使用TensorFlow、MXNet、PyTorch的OBS接口直接从OBS上读取数据。
- 如果文件较小，可以将OBS上的数据保存成".tar"包。训练开始时从OBS上下载到"/cache"目录，解压以后使用。
- 如果文件较大，可以保存成多个".tar"包，在入口脚本中调用多进程进行并行解压数据。不建议把散文件保存到OBS上，这样会导致下载数据很慢。
- 在训练作业中，使用如下代码进行".tar"包解压：
  ```
  import moxing as mox
  import os
  mox.file.copy_parallel("obs://donotdel-modelarts-test/AI/data/PyTorch-1.0.1/tiny-imagenet-200.tar", '/cache/tiny-imagenet-200.tar')
  os.system('cd /cache; tar -xvf tiny-imagenet-200.tar > /dev/null 2>&1')
  ```
  
 
