改善已挂载目录上的IO性能?

时间:2019-06-29 17:01:14

标签: python linux multithreading bash multiprocessing

我正在尝试优化一个Python测试,该测试涉及使用SSH和简单的Bash命令将大约10万个文件写入安装的目录。

我对此没有经验,所以我需要一些有关如何减少IO时间的建议。

基本上,Python脚本会在远程服务器上安装目录(为此,我们将其称为%MOUNTED_DIRECTORY%),然后通过SSH进入远程主机并在该主机上调用以下bash命令:

for number in `seq 1 100000`; do touch %MOUNTED_DIRECTORY%/test_file$number; done

我发现在此过程上花费了大量时间,等待文件创建完成。我需要先创建文件,然后再继续,所以在此期间我无法做任何事情-我必须加快流程。

此外,挂载目录比未挂载目录要花费更多的时间,所以这就是为什么我首先遇到此问题的原因。

我考虑过多线程或多处理,但是它们似乎并不高效,要么是因为我做错了什么,要么是因为该命令实际上是在远程主机上,并且正在使用Bash创建文件,而不是Python? >

1 个答案:

答案 0 :(得分:0)

使用xargs:

seq 1 100000 | sed 's|^|%MOUNTED_DIRECTORY%/test_file|' | xargs touch

这会为每个触摸命令传递尽可能多的名称。