Linux上并行打包压缩工具

文章目录

  • Linux上并行打包压缩工具
    • 1. **Pigz (Parallel gzip)**
    • 2. **Pbzip2 (Parallel bzip2)**
    • 3. **Pixz (Parallel xz)**
    • 4. **Zstd (支持多线程)**
    • 5. **GNU Parallel + 传统工具**
    • 6. **Fastest Tools (综合建议)**
    • 注意事项:
  • tar和zstd多线程压缩和解压
    • **1. 多线程压缩(打包+压缩)**
    • **2. 多线程解压**
    • **3. 额外优化选项(可选)**
    • **4. 直接使用 `zstd` 命令(非 `tar` 整合)**
    • **原理说明**
    • **注意事项**

Linux上并行打包压缩工具

在 Linux 上,如果需要并行的打包压缩工具以提高多核 CPU 的利用率,可以考虑以下工具:


1. Pigz (Parallel gzip)

  • 用途:替代 gzip,多线程压缩。
  • 安装
    sudo apt install pigz  # Debian/Ubuntu
    sudo yum install pigz  # RHEL/CentOS
    
  • 用法
    tar --use-compress-program=pigz -cf archive.tar.gz dir/  # 打包并并行压缩
    pigz -k file  # 压缩文件(保留原文件)
    

2. Pbzip2 (Parallel bzip2)

  • 用途:替代 bzip2,多线程压缩。
  • 安装
    sudo apt install pbzip2  # Debian/Ubuntu
    
  • 用法
    tar --use-compress-program=pbzip2 -cf archive.tar.bz2 dir/
    pbzip2 -k file  # 压缩文件(-k 保留原文件)
    

3. Pixz (Parallel xz)

  • 用途:替代 xz,支持多线程和索引。
  • 安装
    sudo apt install pixz  # Debian/Ubuntu
    
  • 用法
    tar -I pixz -cf archive.tar.xz dir/  # 打包并压缩
    pixz file  # 直接压缩文件(生成 .xz 文件)
    

4. Zstd (支持多线程)

  • 用途:现代高性能压缩算法,默认支持多线程。
  • 安装
    sudo apt install zstd  # Debian/Ubuntu
    
  • 用法
    tar -I 'zstd -T0' -cf archive.tar.zst dir/  # -T0 自动使用所有核心
    zstd -T0 file  # 并行压缩文件
    

5. GNU Parallel + 传统工具

  • 用途:手动并行化处理多个文件。
  • 示例(并行压缩多个文件):
    find dir/ -type f | parallel -j $(nproc) gzip {}
    

6. Fastest Tools (综合建议)

  • 最快压缩zstd(平衡速度/压缩率)。
  • 最高压缩率pixz(多线程 xz)。
  • 兼容性pigz(gzip 替代)。

注意事项:

  • 磁盘 I/O 瓶颈:如果磁盘速度慢,多线程可能无法显著提速。
  • 压缩率/速度权衡zstd > pigz > pbzip2 > pixz(从左到右,压缩率提高但速度降低)。
  • 检查 CPU 使用:用 htop 观察是否所有核心满载。

根据需求选择合适的工具即可!


tar和zstd多线程压缩和解压

在 Linux 中使用 tarzstd 进行多线程压缩和解压可以显著提高速度。以下是具体方法:


1. 多线程压缩(打包+压缩)

tar -I 'zstd -T0' -cf 输出文件.tar.zst 要压缩的目录或文件

或:

tar --use-compress-program='zstd -T0' -cf 输出文件.tar.zst 要压缩的目录或文件
  • -T0:让 zstd 自动使用所有可用的 CPU 线程。
  • 如果想限制线程数,例如用 4 线程:-T4

2. 多线程解压

tar -I 'zstd -T0' -xf 输入文件.tar.zst

或:

tar --use-compress-program='zstd -T0' -xf 输入文件.tar.zst

3. 额外优化选项(可选)

  • 调整压缩级别(1~19,默认 3):

    tar -I 'zstd -T0 -3' -cf output.tar.zst input_dir
    
    • 级别越高压缩率越好,但速度更慢(-3 是速度和压缩率的平衡点)。
  • 快速压缩(低压缩率,高速度):

    tar -I 'zstd -T0 --fast' -cf output.tar.zst input_dir
    
  • 解压到指定目录

    tar -I 'zstd -T0' -xf input.tar.zst -C 目标目录
    

4. 直接使用 zstd 命令(非 tar 整合)

  • 多线程压缩文件
    zstd -T0 文件名
    
  • 多线程解压文件
    zstd -d -T0 文件名.zst
    

原理说明

  • zstd 原生支持多线程(通过 -T 参数),而 tar 负责文件打包。
  • 使用 -I--use-compress-programzstd 作为压缩程序集成到 tar 流程中。

注意事项

  • 确保系统已安装 zstd 工具(安装命令:sudo apt install zstdyum install zstd)。
  • 解压时无需指定线程数,zstd 会自动检测,但显式声明 -T0 可确保多线程生效。

通过这种方法,你可以充分利用多核 CPU 加速归档和压缩过程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/84427.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【K8S系列】K8S中Service 无法访问问题的深度分析

摘要 : 本文是关于 Kubernetes 中 Service 无法访问问题的深度分析,结合根本原因、诊断策略与解决方案的系统性指南: Kubernetes Service 访问故障全景解析:从底层机制到实战修复 Service 作为 Kubernetes 集群内网络通信的核心抽…

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…

进行性核上性麻痹护理指南:全维度守护健康

进行性核上性麻痹是一种罕见的神经系统退行性疾病,会导致患者出现运动障碍、吞咽困难、认知障碍等症状。科学的健康护理对延缓病情发展、提升患者生活质量至关重要。 饮食护理:由于患者常存在吞咽困难,食物应选择糊状、软烂的类型&#xff0c…

【浅析赛题,国赛一等奖水平:思路+模型:】2025 年第八届河北省研究生数学建模竞赛:A 题 基于图论的复杂网络分析与可视化建模

问题一:社交网络拓扑结构分析与影响力评估 基础模型 有向加权图构建:将用户设为节点,互动关系为有向边,以互动频率(如一定时间内点赞、评论、转发次数)或加权求和(赋予不同互动类型不同权重&a…

web3-去中心化金融深度剖析:DEX、AMM及兑换交易传播如何改变世界

web3-去中心化金融深度剖析:DEX、AMM及兑换交易传播如何改变世界 金融问题 1.个人投资:在不同的时间和可能的情况(状态)下积累财富 2.商业投资:为企业家和企业提供投资生产性活动的资源 目标:跨越时间和…

【笔记】NVIDIA AI Workbench 安装记录

前言 NVIDIA AI Workbench 简介 NVIDIA AI Workbench 是一款由 NVIDIA 推出的集成化开发工具,旨在简化人工智能和机器学习的开发流程。它提供从数据准备到模型训练、优化及部署的全套工具链,支持跨平台协作,适合开发者、数据科学家和企业团队…

积累-Vue.js 开发实用指南:ElementUI 与核心技巧

一、ElementUI 组件高效使用 1. Table 组件展开行优化实现 场景需求:仅在展开行时动态加载数据,避免不必要的接口调用 实现方案: // expand行展开的时候调用expandOpen: async (row, expandedRows) > {// 实时更新展开列const index e…

【BUG】记STM32F030多通道ADC DMA读取乱序问题

STM32F0多通道ADC的校准顺序与DMA乱序问题的本质 声明:本段转载:https://www.cnblogs.com/chihirosan/p/5458673.html 问题描述 通过 uint16_t ConvData[8]保存DMA搬运的ADC转换数值,但是这个数组数值的顺序总是和ADC不是顺序对应的。比如用7…

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…

今天刷SQL

多说几句,JAVA真不行了? 刚刚看到那个tiobe最新的指数,JAVA只剩下8.84%?感觉上次看的时候还有百分之十呢。 185-department-top-three-salaries https://leetcode.com/problems/department-top-three-salaries/description/ 公…

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…

【计算机网络】SDN

SDN这种新型网络体系结构的核心思想:把网络的控制层面与数据层面分离,而让控制层面利用软件来控制数据层面中的许多设备。 OpenFlow协议可以被看成是SDN体系结构中控制层面与数据层面之间的通信接口。 在SDN中取代传统路由器中转发表的是“流表”&…

量化面试绿皮书:9. 通往Offer的门

文中内容仅限技术学习与代码实践参考,市场存在不确定性,技术分析需谨慎验证,不构成任何投资建议。 9. 通往Offer的门 你面对着两扇门。 一个通往你的工作机会,另一个是退出。 两扇门前都有一名警卫。一个守卫总是说谎&#xff0c…

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…

Ascend NPU上适配Step1X-Edit模型

1 概述 1.1 简述 Step1X-Edit:一个在各种真实用户指令下表现出现的统一图像编辑模型。 Step1X-Edit,其性能可与 GPT-4o 和 Gemini2 Flash 等闭源模型相媲美。更具体地说,我们采用了多模态LLM 来处理参考图像和用户的编辑指令。我们提取了潜…

WEB3全栈开发——面试专业技能点P8DevOps / 区块链部署

一、Hardhat / Foundry 进行合约部署 概念介绍 Hardhat 和 Foundry 都是以太坊智能合约开发的工具套件,支持合约的编译、测试和部署。 它们允许开发者在本地或测试网络快速开发智能合约,并部署到链上(测试网或主网)。 部署过程…

【题解-洛谷】B4292 [蓝桥杯青少年组省赛 2022] 路线

题目:B4292 [蓝桥杯青少年组省赛 2022] 路线 题目描述 有一个旅游景区,景区中有 N N N 个景点,景点以数字 1 1 1 到 N N N 编号,其中编号为 N N N 的景点为游客服务中心所在地。景区中有 M M M 条连接路线,每条…

MySQL体系架构解析(四):MySQL数据存储的揭秘

MySQL中的数据目录 确定MySQL的数据目录 到底MySQL把数据都存到哪个路径下呢?其实数据木对应着一个系统变量datadir,我们在使用客户端与服务器建立连接之后查看这个系统变量的值就可以了。 -- 以下两种方式都可以 show variables like datadir; selec…

Solidity从入门到精通-Remix的基本使用和Solidity的基本数据类型

Solidity从入门到精通-Remix的基本使用和Solidity的基本数据类型 讲了那么多理论,相信大家对区块链/web3也有了一定认知;这时候可能就问有人会问了如何把理论变成实际的代码实现。 这就来了接下来会给大家分享Solidity入门教程 这时候就会有同学问了Sol…

ArcGIS Pro+ArcGIS给你的地图加上北回归线!

今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等,设置经线、纬线都以10间隔显示。 2、需要插入背会归线&#xf…