米饭粑 米饭粑
  • 首页
  • 好物推荐
    • 干货分享
    • 好物推荐
    • 免费资源
    • 非专业测评
  • 技术架构
    • Linux
    • HTTPS
    • Windows Server
  • 网站建设
    • 免费资源
    • 建站程序
    • 云建站
    • WordPress
  • 网络服务
    • CDN
    • DNS
    • HTTPS
  • 教程&更多
    • 更多教程
    • 资讯新闻
    • 琐琐碎碎
    • 关于米饭
    • 打赏米饭
  • 友情链接
  • 阿里云Ping
首页 › 好物推荐 › 非专业测评 › 更高、更快、更强,奥运精神的多线程压缩方式测试

更高、更快、更强,奥运精神的多线程压缩方式测试

妙正灰
4年前非专业测评
1,974 0 0

前言

网站搬家尤其是对那些大网站,动辄几百个 G 的文件真的是整个人都不好了。而且数据传输和解压缩都比较费时。这里就来讲一下,我觉得比较好的搬家压缩、解压方案。

所以说呢,压缩方式这种东西,只有效率更高,压缩更快,支持率更强才是好的压缩,话说还挺符合奥运精神的呢,还好写这篇文字的时候至少残奥会还没有闭幕,不然就 TM 尴尬了。

压缩方式

一般来说,我们可能会使用 gzip 或者 zip 压缩网站目录,但其实压缩率是比较低的。这样我们在输入传输的时候,如果旧的服务器上行带宽非常小的话,真的是能等死人了。

不知道大家有没有体验过,在自己的电脑上,用 Windows 原生的文件浏览器解压 zip 文件慢的可以,但是用某些压缩软件,几乎是秒解压。就是因为专业的压缩软件对多核心、多线程做了优化。

这里推荐 xz 和 bzip2 压缩方案,两者的压缩率都比 gzip 高,前者压缩率最高。但是压缩的耗时就和压缩率完全反一下了。不过,我们可以利用多线程技术进行优化。

介绍

pbzip2

bzip2 有一个多核心支持版本,就是 pbzip2,基于 GNU Parallel 并行计算项目,让 bzip2 可以进行多线程的压缩和解压缩。缩短压缩时间,但是压缩率并没有明显变化。

pbzip2 在各大系统上都有很好的兼容性,这就是为什么压缩率明明比 xz 方式低,却依然要介绍的原因。

安装

Debian/Ubuntu: apt-get install pbzip2'
RHEL/CentOS: yum install pbzip2

XZ Utils

XZ Utils 是为 POSIX 平台开发具有高压缩率的工具。它使用 LZMA2 压缩算法,生成的压缩文件比 POSIX 平台传统使用的 gzip、bzip2 生成的压缩文件更小,而且解压缩速度也很快。已在 Linux 各发行版中广泛使用。最典型的就是 Linux Kernel 内核,4.7.2 版本的 xz 压缩包仅 90.4 MB,解压后能达到 633.0 MB。

但是,XZ 的压缩耗时极其长,且支持多线程压缩的 5.2 版本在各大 Linux 发行版中并没有获得广泛的支持,所以如果想获得更加积极的压缩耗时,就必须自己编译。

安装

 wget http://tukaani.org/xz/xz-5.2.2.tar.xz
 tar -Jxf xz-5.2.2.tar.xz
 cd xz-5.2.2
 
 ./configure --prefix=/usr --docdir=/usr/share/doc/xz-5.2.2
 make && make install
 mv -v   /usr/bin/{lzma,unlzma,lzcat,xz,unxz,xzcat} /bin
 mv -v /usr/lib/liblzma.so.* /lib
 ln -svf ../../lib/$(readlink /usr/lib/liblzma.so) /usr/lib/liblzma.so

对比

这里使用 Pbzip2、Pigz(gzip 的多线程支持版)和 XZ Utils 做对比。
压缩一个 395.1 M 的 PHPCMS 门户网站。

压缩命令

tar zcvf mf8-test1.tar.gz mf8.biz-test   #单线程 gzip 压缩
tar jcvf mf8-test2.tar.bz2 mf8.biz-test  #单线程 bzip2 压缩
tar -c -I pigz -f mf8-test3.tar.gz mf8.biz-test #多线程 gzip 压缩
tar -c -I pbzip2 -f mf8-test4.tar.bz2 mf8.biz-test #多线程 bzip2 压缩
tar -cJf mf8-test5.tar.xz mf8.biz-test -T0 #使用 T0 自动判断多线程 xz 压缩

压缩结果

rice8@mf8-biz-test-Platform:~/test$ ls -lh
总用量 1.7G
drwxrwxr-x 58 ivmm ivmm 4.0K 9月   4 17:06 mf8.biz-test # 395.1 M 的 PHPCMS 目录
-rw-rw-r--  1 ivmm ivmm 306M 9月   4 17:07 mf8-test1.tar.gz #单线程 gzip 压缩结果
-rw-rw-r--  1 ivmm ivmm 286M 9月   4 17:09 mf8-test2.tar.bz2 #单线程 bzip2 压缩结果
-rw-rw-r--  1 ivmm ivmm 293M 9月   4 17:20 mf8-test3.tar.gz #多线程 gzip 压缩结果
-rw-rw-r--  1 ivmm ivmm 286M 9月   4 17:23 mf8-test4.tar.bz2 #多线程 bzip2 压缩结果
-rw-rw-r--  1 ivmm ivmm 238M 9月   5 10:11 mf8-test5.tar.xz #多线程 xz 压缩结果

结果

可见,xz 的压缩率达到 40%,确实是不错的压缩方式,pbzip2 的压缩效果也非常不错。

引用

这是知乎上的一篇文章的图片结果,可能更加直观一点。

更高、更快、更强,奥运精神的多线程压缩方式测试-米饭粑

更高、更快、更强,奥运精神的多线程压缩方式测试-米饭粑

更高、更快、更强,奥运精神的多线程压缩方式测试-米饭粑

图片来自:https://zhuanlan.zhihu.com/p/20926080

bzip2 gzip pbzip2 xz 压缩
0
GCC PGO 适应性优化 PHP7 介绍
上一篇
为你的 网站/APP 做好 ipv6 Only 准备
下一篇
评论 (0)
再想想
标签
Appnode Brotli CDN CentOS CentOS8 Debian DNS ECC ECS Ghost HTTP2 HTTPS IIS IPV6 Linux LiteSpeed MariaDB MySQL Nginx OLS OpenLiteSpeed OpenResty OSS PageSpeed PHP PHP7 QUIC Redis RHEL RHEL8 SSL TokuDB Ubuntu Windows Server 2016 Wordpress 云服务器 升级 域名 对象存储 微软 数据库 百度 笔记本 阿里云 阿里云ACP
文章归档
关注米饭粑微信公众号
相关文章
Intel 的前后缀编号介绍和分析
Alinode 阿里云出品的 Node.js 解决方案体验
利用 OptiPNG、jpegoptim 对图片进行无损压缩
PageKit - 比 Ghost 更简单更丰富的 MD 博客系统
关于

稻粢穱麦,挐黄梁些,折腾云计算的经验分享和总结。

菜单
首页 教程 好物 关于 链接 打赏
内页链接
米饭粑 米范导航
Copyright © 2011-2021 米饭粑. Designed by nicetheme. 浙ICP备15006212号-1
  • 首页
  • 教程
  • 好物
  • 关于
  • 链接
  • 打赏
热门搜索
  • 402
  • 113
  • 546
  • 548
  • 460
妙正灰
文科屌丝伪IT男一枚.
337 文章
385 评论
367 喜欢
  • 0
  • 0
  • Top