2021-05-12 14:32:11
bzip、pbzip2壓縮工具比較
2020-06-16 16:57:51
Linux版本:Debian8.5
pbzip2安裝:apt-get install pbzip2
pbzip2詳情請見:檔案壓縮工具pbzip2安裝及使用介紹 http://www.linuxidc.com/Linux/2018-01/150144.htm
bzip2(單執行緒壓縮工具)
# 壓縮單個檔案測試
# 單個檔案大小
root@wing:/data # du -h 2016.sql
3.4G 2016.sql
# tar bzip2 壓縮命令
time tar -jcf 2016.sql.bz2 2016.sql
# 單個檔案壓縮時間
real 10m7.996s
user 10m4.632s
sys 0m13.276s
# 壓縮後檔案大小
root@wing:/data # du -sh 2016.sql.bz2
220M 2016.sql.bz2
# 壓縮目錄測試
# 目錄檔案大小
root@wing:/data # du -sh 20161122/
6.9G 20161122/
# tar bzip 只能使用一個核進行壓縮
time tar -jcvf 20161122_bzip.bz2 20161122/*
# 目錄壓縮時間
real 24m30.013s
user 22m51.936s
sys 0m23.872s
# 壓縮後檔案大小
root@wing:/data # du -h 20161122.bz2
356M 20161122.bz2
pbzip2(多執行緒壓縮工具)
# 壓縮單個檔案測試
# 單個檔案大小
root@wing:/data # du -h 2016.sql
3.4G 2016.sql
# pbzip2壓縮命令
time pbzip2 -p3 -k 2016.sql
# 單個檔案壓縮時間
real 3m22.909s
user 9m55.092s
sys 0m16.284s
# 壓縮後檔案大小
root@wing:/data # du -sh 2016.pbzip.bz2
221M 2016.pbzip.bz2
# 壓縮目錄測試
# 目錄檔案大小
root@wing:/data # du -sh 20161122/
6.9G 20161122/
# tar bzip pbzip 使用3個核進行壓縮
time tar -c 20161122 | pbzip2 -p3 -c > 20161122.tar.bz2
# 目錄壓縮時間
real 7m31.688s
user 22m5.736s
sys 0m42.520s
# 壓縮後檔案大小
root@wing:/data # du -h 20161122.tar.bz2
358M 20161122.tar.bz2
總結:
bzip | pbzip(3個執行緒) | |
---|---|---|
原檔案大小 | 3.4G | 3.4G |
檔案壓縮時間( real) | 10m7.996s | 3m22.909s |
檔案壓縮大小 | 220M | 221M |
原目錄大小 | 6.9G | 6.9G |
目錄壓縮時間(real) | 24m30.013s | 7m31.688s |
目錄壓縮大小 | 356M | 358M |
注意:壓縮時間使用real計算,而不使用user+sys計算的原因是,多執行緒下user的時間是每個執行緒時間之和,與我們可以感知到的時間偏差較大,所以選擇real,該伺服器上都是初始化的job,所以real更接近使用者感知的時間。
從上面表格可以得出,pbzip2開啟3個執行緒壓縮的前提下,無論是壓縮單個檔案還是壓縮目錄,時間上比單執行緒bzip2壓縮快了接近3倍,而壓縮比也基本相同。
本文永久更新連結地址:http://www.linuxidc.com/Linux/2018-01/150145.htm
相關文章