2010-11-08 25 views
0

在python中为Linux设计一个相当简单的备份系统时,我发现自己问的问题是:可以在任何时间优势下同时备份多个数据集/存档?同时执行多个备份任务:理论与实践

我的直觉告诉我,同时写入多个档案不会花费太多时间,因为I/O已经是最大的瓶颈。

另一方面,如果使用类似bz2的东西,多线程技术是否会有优势,因为更高的CPU需求会降低I/O需求?或者是因为所有的线程都会做基本相同的事情,因此共享相同的瓶颈?

回答

3

这取决于您的系统。如果您有多个磁盘,则可能非常值得并行备份作业。如果您有多个处理器,并行压缩多个作业可能值得您一段时间。

如果处理器足够慢(并且磁盘速度足够快),压缩会使CPU成为瓶颈,那么在多核或超线程处理器上可以获得一些收益。如果您的CPU能够跟上驱动器的读取速度,那么从写入的压缩数据中减少的I/O需求几乎肯定是一个胜利。

无论如何,这都是非常依赖系统。试试看看。立即运行两个作业,然后连续运行相同的两个作业并查看花费的时间更长。廉价(编码方式)的方式是使用不同的输入和输出参数运行备份脚本两次。一旦你建立了胜利者,你就可以走得更远。