V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
csensix
V2EX  ›  问与答

CentOS tar gzip 压缩时间太长

  •  
  •   csensix · 2014-12-26 15:29:24 +08:00 · 4186 次点击
    这是一个创建于 3620 天前的主题,其中的信息可能已经有所发展或是发生改变。
    是这样,有一个目录A,里面有一千多个子目录。之前,都是直接tar命令打包压缩A目录。现在,A目录大小超过10G了,前几天发现运行了五六个小时还没打包压缩完。

    后来,我改成用循环对A目录下的子目录进行打包压缩,结果还是得运行五六个小时。虽然程序没报错,但我隐约觉得这中间有问题。

    特来这里请教,还有没有更好的备份方案?
    7 条回复    2014-12-26 15:47:29 +08:00
    rrfeng
        1
    rrfeng  
       2014-12-26 15:33:49 +08:00
    增量备份。
    halfbloodrock
        2
    halfbloodrock  
       2014-12-26 15:38:21 +08:00
    tar是单线程。。。我当时解决方式用了perl的parallel模块并发压缩。。。

    http://search.cpan.org/~szabgab/Parallel-ForkManager-1.07/lib/Parallel/ForkManager.pm

    其他方式还有很多。
    csensix
        3
    csensix  
    OP
       2014-12-26 15:39:20 +08:00
    @rrfeng 但是现在文件已经很大了
    csensix
        4
    csensix  
    OP
       2014-12-26 15:40:22 +08:00
    @halfbloodrock 这个高深了
    cattyhouse
        5
    cattyhouse  
       2014-12-26 15:44:34 +08:00 via iPhone
    用pigz压缩,多线程。
    halfbloodrock
        6
    halfbloodrock  
       2014-12-26 15:46:56 +08:00
    @csensix
    ....其实很简单...我这种perl一窍不通的也能照着画出脚本来。。。

    #########

    #!/usr/bin/perl -w
    use strict;
    use Parallel::ForkManager;

    my $MAX_PROCESSES=10;
    my $pm=new Parallel::ForkManager($MAX_PROCESSES);

    my @exp=(
    ["tar -zcf /log/FY13_logs/Nov22/a.tar.gz /log/NON-PCI/app-logs/12/11/22/*"],
    ["tar -zcf /log/FY13_logs/Nov23/a.tar.gz /log/NON-PCI/app-logs/12/11/23/*"],
    ["tar -zcf /log/FY13_logs/Nov24/a.tar.gz /log/NON-PCI/app-logs/12/11/24/*"],
    );

    foreach my $i (@exp){
    $pm->start and next;
    `@$i`;
    $pm->finish;
    }
    #########
    66450146
        7
    66450146  
       2014-12-26 15:47:29 +08:00
    压缩的时候是 CPU 跑满还是磁盘 IO 跑满?

    如果是磁盘 IO 跑满就提高压缩率,换其他压缩方式

    如果是 CPU 跑满就降低压缩率,或者甚至不压缩

    重复前面两步直到无法提高打包速度,如果还不满意的话就只能换其他方法了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2729 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:12 · PVG 20:12 · LAX 04:12 · JFK 07:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.