.tar.gz:壓縮和解壓的時間有關係嗎?

.tar.gz:壓縮和解壓的時間有關係嗎?

我正在將 mongodb (~500GB) 的備份壓縮到 .tar.gz 檔案中,這需要數小時的時間。我正在嘗試將該資料庫備份到不同的計算機上以進行測試,並且我想估計每台計算機需要多長時間。

我的問題是,有什麼方法可以根據壓縮所需的時間來估計解壓縮存檔所需的時間?

謝謝

答案1

我不知道壓縮與解壓縮的標準比率,因為這實際上取決於您的資料和伺服器資源。假設所有其他資源相同,解壓縮通常會更快,因為涉及的計算工作較少。您估計的最壞情況可能與初始壓縮時間相同。

但是,為了輕鬆獲勝,我建議使用pigz,它的並行實作gzip利用了多個處理器和核心。除非您只有一個可用核心,否則pigz應該大大減少壓縮和解壓縮的時間。

範例用法tar

tar -c --use-compress-program=pigz -f data.tgz /path/to/data

有關更多範例,請參閱StackOverflow:利用多核心進行 tar+gzip/bzip 壓縮/解壓縮

答案2

在同一台機器上沒有明確的比例,使用多台機器(不同類型)肯定會產生影響。壓縮和解壓縮主動涉及資料儲存(例如,「硬碟」或「SSD」)、處理器和其他元件(例如記憶體)。

作為過度概括,解壓縮非常快,甚至可能比複製未壓縮的資料量更快。壓縮也可以同樣快​​速,對於 RLE 壓縮之類的東西可能會如此。對於 zip 和 gzip,常見的實現速度比解壓縮慢,如果您選擇更激進的壓縮選項(可能需要 2-4 倍的時間),通常可以再擠出 5%-15% 的壓縮效率。

差異很大程度上是因為壓縮涉及一些測試(有時被認為是“猜測”),而一些測試是沒有結果的。相較之下,減壓通常只是按照預先設定的過程進行,因此速度相對較快。

相關內容