我想通过1Gbitnetworking将一个多TB的目录最有效地传输到nfs挂载目录(可能是限制因素)
3个选项 –
对我来说看起来很明显,#3应该是最有效率的,因为我只是一次读写数据。 不幸的是,我的命令(tar -c dir | pigz> /mnt/nfs/dir.tgz)似乎tar了一段时间,然后压缩一段时间,然后焦油一段时间…和networking闲置大块的时间,那么CPU是闲置的。
我错过了一些select吗?
PS我的问题似乎与这个问题有关,但没有答案,并没有真正问清楚networking和CPU饱和之间交替的确切问题。
您可能会忘记,在UNIX / Linux中,一个进程一次只能执行一次BLOCKING I / O操作。 tar或compress函数中没有并发的读或写操作。 在I / O调用期间,在这两个进程中也没有任何数据处理。
有缓冲filter试图通过使用共享内存和2个进程来减轻这种影响:一个读取,另一个写入。
在这种模式下,您必须重新分析您的选项以确定瓶颈和实际的系统操作顺序。