V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
arkilis
V2EX  ›  Linux

为什么使用rsync 备份数据特别慢?

  •  
  •   arkilis · 2013-12-11 08:49:14 +08:00 · 13227 次点击
    这是一个创建于 3760 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近用 rsync 来备份一个大约300G的数据.都一天了还在运行,感觉这个跟内存的使用有关:

    cat /proc/memoinfo

    MemTotal: 98992132 kB
    MemFree: 319196 kB
    Buffers: 26052 kB
    Cached: 96985728 kB
    SwapCached: 0 kB
    Active: 25044636 kB
    Inactive: 72410604 kB
    HighTotal: 0 kB
    HighFree: 0 kB
    LowTotal: 98992132 kB
    LowFree: 319196 kB
    SwapTotal: 51511288 kB
    SwapFree: 51511024 kB
    Dirty: 12 kB
    Writeback: 304 kB
    AnonPages: 443732 kB
    Mapped: 61240 kB
    Slab: 985844 kB
    PageTables: 25240 kB
    NFS_Unstable: 0 kB
    Bounce: 0 kB
    CommitLimit: 101007352 kB
    Committed_AS: 1131388 kB
    VmallocTotal: 34359738367 kB
    VmallocUsed: 305392 kB
    VmallocChunk: 34359430583 kB
    HugePages_Total: 0
    HugePages_Free: 0
    HugePages_Rsvd: 0
    Hugepagesize: 2048 kB


    有什么办法可以看看瓶颈吗?
    20 条回复    1970-01-01 08:00:00 +08:00
    kingwkb
        1
    kingwkb  
       2013-12-11 08:53:25 +08:00
    用scp
    likuku
        2
    likuku  
       2013-12-11 08:59:22 +08:00 via iPhone   ❤️ 1
    记得rsync有参数可以不比对直接复制的
    megaforce
        3
    megaforce  
       2013-12-11 09:11:15 +08:00
    @arkilis
    你怎么用Rsync命令的?我一般用rsync -avuz xxx x.x.x.x::xx/xx ,300G很快的。

    是不是源磁盘有问题?
    网卡是什么样的?
    感觉跟内存无关
    arkilis
        4
    arkilis  
    OP
       2013-12-11 09:20:55 +08:00
    @megaforce Thanks,我只用了两个参数

    -a: archive
    --partial: keep partially transferred files

    网络连接两个设备,但是都是千兆的网卡,速度应该不慢. 磁盘没有问题.
    arkilis
        5
    arkilis  
    OP
       2013-12-11 09:21:36 +08:00
    @likuku 根据客户需求还是需要对比的.
    lch21
        6
    lch21  
       2013-12-11 09:56:59 +08:00
    btsync 快
    Admstor
        7
    Admstor  
       2013-12-11 10:19:50 +08:00
    大文件小文件?小文件当然很慢很慢了
    nocoo
        8
    nocoo  
       2013-12-11 11:00:27 +08:00
    @Admstor 刚好相反,这张情况下小文件反而快,因为很多很多小文件,有更大可能性大部分在前后两次备份的时候没有发生变化而跳过。

    楼主可以讲讲文件的类型和结构,如果是一个大文件,而且内容经常发生变化,rsync这时候并不能发挥优势。rsync在处理大文件的时候会将文件分块然后hash,相同的块会跳过。因此一些基于行或者有固定元素大小的文件在这个时候会有优势。
    likuku
        9
    likuku  
       2013-12-11 13:29:44 +08:00
    @nocoo 纯文本的文件是可以这样...要是binary的数据,块比对没戏了,都直接完全复制覆盖了。
    ericFork
        10
    ericFork  
       2013-12-11 13:48:45 +08:00
    不要用 ssh 协议,用 rsync daemon,可以大幅提升速度
    arkilis
        11
    arkilis  
    OP
       2013-12-11 13:57:08 +08:00
    @ericFork 把rsync 作为一个一直running的deamon? interesting
    ericFork
        12
    ericFork  
       2013-12-11 14:53:27 +08:00
    @arkilis 不是,是 rsyncd....用的是 rsync:// 协议,而不是 ssh
    julyclyde
        13
    julyclyde  
       2013-12-11 15:07:26 +08:00
    @ericFork rsync://协议就是把rsync作为daemon运行
    arkilis
        14
    arkilis  
    OP
       2013-12-12 07:27:31 +08:00
    @julyclyde Thanks!
    nocoo
        15
    nocoo  
       2013-12-12 07:48:36 +08:00
    @likuku binary实际上也可以,binary文件可以理解为外星文文本或者乱码文本文件,只要发生修改的时候部分位移/覆盖/删除/追加,都有可能导致分块恰好不变而节约传输。
    arkilis
        16
    arkilis  
    OP
       2013-12-12 07:59:35 +08:00
    @nocoo 就是用来备份的,有时候保证数据的完整性,我特意运行RSYNC两次,所以这个时候时间问题就来了. 总的来说以50m左右的binary文件为主,还有一些文本文件.总共的大小为300~500GB.
    julyclyde
        17
    julyclyde  
       2013-12-12 11:19:19 +08:00
    试试-W
    likuku
        18
    likuku  
       2013-12-12 23:38:31 +08:00
    @arkilis 这样…两头机器磁盘IO都得很强才行…

    前两年搞过一台备份服务器是32G内存跑Freebsd,直接拿SATA 2T硬盘x2作ZFS的mirror,跑rsyncd服务,zpool持续写入速度120MBytes/sec 吧
    ptcracker
        19
    ptcracker  
       2013-12-16 07:29:53 +08:00
    @likuku ZFS?Linux or FreeBSD or Solaris?如果是 Linux,是基于 kernel 的还是基于 fuse 的?
    likuku
        20
    likuku  
       2013-12-16 10:52:41 +08:00
    @ptcracker 我18楼的写清楚是 freebsd 啊。solaris 现在收费才能用了,没钱。

    授权冲突问题,所以当前 zfs 进不了 linux 内核,fuse 的性能功能稳定性作为生产机风险大。

    所以,想提高 当前 linux 的磁盘I/O,只有 SSD/阵列产品
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1065 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:59 · PVG 02:59 · LAX 11:59 · JFK 14:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.