2010-11-08 26 views
0

在python中爲Linux設計一個相當簡單的備份系統時,我發現自己問的問題是:可以在任何時間優勢下同時備份多個數據集/存檔?同時執行多個備份任務:理論與實踐

我的直覺告訴我,同時寫入多個檔案不會花費太多時間,因爲I/O已經是最大的瓶頸。

另一方面,如果使用類似bz2的東西,多線程技術是否會有優勢,因爲更高的CPU需求會降低I/O需求?或者是因爲所有的線程都會做基本相同的事情,因此共享相同的瓶頸?

回答

3

這取決於您的系統。如果您有多個磁盤,則可能非常值得並行備份作業。如果您有多個處理器,並行壓縮多個作業可能值得您一段時間。

如果處理器足夠慢(並且磁盤速度足夠快),壓縮會使CPU成爲瓶頸,那麼在多核或超線程處理器上可以獲得一些收益。如果您的CPU能夠跟上驅動器的讀取速度,那麼從寫入的壓縮數據中減少的I/O需求幾乎肯定是一個勝利。

無論如何,這都是非常依賴系統。試試看看。立即運行兩個作業,然後連續運行相同的兩個作業並查看花費的時間更長。廉價(編碼方式)的方式是使用不同的輸入和輸出參數運行備份腳本兩次。一旦你建立了勝利者,你就可以走得更遠。