多核压缩和解压缩

需求

前几天编译了不少文件,特别是gccgo、内核,文件数量多、文件较小。若直接拷贝耗时过长而且容易出错,故采用打包压缩方式。默认采用tar -czvf gccgo.tgz gccgo来压缩文件,发现仅仅单核工作,对于多核的aarch64服务器非常不友好及浪费资源。如何让多核同时工作是接下来需要讲解的内容。
环境如下:

[root@cp1 ~]# uname -a
Linux cp1 4.19.90-23.8.v2101.ky10.aarch64 #1 SMP Mon May 17 17:07:38 CST 2021 aarch64 aarch64 aarch64 GNU/Linux
[root@cp1 ~]# cat /etc/lsb-release
DISTRIB_ID=Kylin
DISTRIB_RELEASE=V10
DISTRIB_CODENAME=juniper
DISTRIB_DESCRIPTION="Kylin V10"
DISTRIB_KYLIN_RELEASE=V10
DISTRIB_VERSION_TYPE=enterprise
DISTRIB_VERSION_MODE=normal
[root@cp1 ~]# lscpu
架构:                           aarch64
CPU 运行模式:                   64-bit
字节序:                         Little Endian
CPU:                             64
在线 CPU 列表:                  0-63
每个核的线程数:                 1
每个座的核数:                   64
座:                             1
NUMA 节点:                      8
厂商 ID:                        Phytium
型号:                           2
型号名称:                       FT-2000+/64
步进:                           0x1
BogoMIPS:                       100.00
L1d 缓存:                       2 MiB
L1i 缓存:                       2 MiB
L2 缓存:                        256 MiB
NUMA 节点0 CPU:                 0-7
NUMA 节点1 CPU:                 8-15
NUMA 节点2 CPU:                 16-23
NUMA 节点3 CPU:                 24-31
NUMA 节点4 CPU:                 32-39
NUMA 节点5 CPU:                 40-47
NUMA 节点6 CPU:                 48-55
NUMA 节点7 CPU:                 56-63

压缩

习惯使用gzip进行压缩,多核压缩我们采用它的并行版本pigz(pigz is a parallel implementation of gzip which utilizes multiple cores),流行的多线程归档器还有pbzip2,安装软件包:

yum install pigz.aarch64

以gccgo文件夹压缩为例,如下

  • 使用tar标志“–use-compress-program =”
tar -c --use-compress-program=pigz -f gccgo.tgz gccgo
  • 通过pigz管道
tar cf - gccgo| pigz -9 -p 64 > gccgo.tgz

压缩:pigz -9: 指定压缩级别(9最高,1最低),-p: 线程数

多核压缩状态下cpu的使用率如下:
在这里插入图片描述


解压缩:

tar --use-compress-program=pigz -xpf gccgo.tgz 

解压缩通过cpu看不出多核效果,亦可采用常规解压缩方式

tar -xf gccgo.tgz

参考文献:

https://www.itranslater.com/qa/details/2122665251421291520
https://code-examples.net/zh-CN/q/bbe29a
https://www.codenong.com/12313242/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值