rsync备份海量文件时占用大量内存的解决方法

 更新时间:2016年07月21日 17:02:09   投稿:mdxy-dxy  
这篇文章主要介绍了rsync备份海量文件时占用大量内存的解决办法,需要的朋友可以参考下

linux发行版中大多都自带rsync,不过版本比较低,一般都是2.6.X
在2.X的版本中,rsync备份时都是先列表再备份(添加或者删除),在处理大量文件时,会耗费比较多的内存。
备份的时候,rsync扫描到的每个文件(目录也一样),在它的列表中约占100字节的内存,如果加了--delete参数的话,占用的内存会更多。
例如我这里一台服务器,约800万的图片,而且更新比较频繁,文件数增长比较快,差不多每天增加约10万张。备份的时候,rsync大约占用了将近2G的内存,大量内存的占用,造成服务器物理内存不足,进而使用到swap,然后产生更高的iowait(交换内存),进而造成rsync列表更慢,并且影响到服务器上的业务。
对于这样的情况,在rsync 3.X出现之前,人们普遍给出的建议是把备份操作给拆分成若干个小的备份操作。比如原来有10个图片目录一起备份,现在拆成10个备份操作,每次只备份其中一个。另外,还有人建议减小目录的深度,这样可以减小目录的数量,可以减少rsync占用的内存。另外还有个叫做digisync的软件,是专门用来备份G级数量的文件的。

rsync 3.X采用的是incremental file list,与原来的 2.X相比,现在是一边列表一边备份(添加或删除)。这对于大量文件的备份操作来说,无疑节省了很多时间。
实测发现,rsync 3.0.4备份时占用的内存大约时4M,跟一个apache进程占用的内存差不多。

rsync 的主页在http://samba.anu.edu.au/rsync/ 目前最新稳定版本为 rsync-3.1.1

复制代码 代码如下:

cd /usr/src/
wget http://samba.anu.edu.au/ftp/rsync/src/rsync-3.1.1.tar.gz
tar xzvf rsync-3.1.1.tar.gz
cd rsync-3.1.1
./configure --prefix=/usr
make
make install

然后运行 rsync --version 来看看版本号

需要注意的是,源主机和目的主机必须都升级到 rsync 3.X 才能使用到rsync 3.X的新特性。

值得一提的是,自从 2006年11月6号发布 version 2.6.9以后,一直到08年3月才发布3.0,使得很长一段时间内,大家不得不找各种各样的办法来处理大量的文件备份操作

相关文章

  • 在Mac下如何安装phpredis扩展

    在Mac下如何安装phpredis扩展

    这篇文章主要介绍了从windows转到Mac下,如何安装phpredis扩展,首先大家要先下载phpredis扩展,然后用命令进入文件夹,有需要的朋友可以来参考下。
    2015-07-07
  • windows服务器运维需要的远程桌面控制软件

    windows服务器运维需要的远程桌面控制软件

    我们有些朋友可能用到本地电脑自带的远程工具,但是这种比较局限仅仅是服务器端的连接,不可以操控远程的其他电脑,在这篇文章中,整理7个适用于电脑端的远程桌面控制软件
    2024-01-01
  • 使用SSH远程连接Ubuntu服务器系统的方法

    使用SSH远程连接Ubuntu服务器系统的方法

    这篇文章主要介绍了使用SSH远程连接Ubuntu服务器系统,本教程是为了配置ssh服务,可以将Ubuntu系统远程通过cmd或者windows Powershell登录,就可以实现代码复制功能,需要的朋友可以参考下
    2023-11-11
  • Linux下Redis服务器搭建过程

    Linux下Redis服务器搭建过程

    这篇文章主要介绍了Linux下Redis服务器搭建过程,需要的朋友可以参考下
    2017-10-10
  • 微服务架构拆分策略详解

    微服务架构拆分策略详解

    这一章我们就来探讨如何做微服务架构的拆分,微服务拆分没有一个绝对的标准答案,服务拆分的粒度需要根据业务场景来规划,而随着业务的发展,原先的架构方案也需要做调整虽然没有固定的套路,但是我们在业务实践过程中总结的一些经验,以做参考
    2022-01-01
  • 如何设置5台SSH互免的虚拟机服务器配置

    如何设置5台SSH互免的虚拟机服务器配置

    搭建一套集群虚拟机,往往都需要互免设置,过程很简单,避免以后再搭建还得网上搜索,我直接将这一个步骤写成笔记,对SSH虚拟机服务器配置感兴趣的朋友跟随小编一起看看吧
    2024-01-01
  • Zabbix 上Windows性能监控的方法

    Zabbix 上Windows性能监控的方法

    这篇文章主要介绍了Zabbix 上Windows性能监控,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • git安装步骤_动力节点Java学院整理

    git安装步骤_动力节点Java学院整理

    这篇文章主要为大家详细介绍了git安装步骤的相关教程,Linux上安装Git、Mac OS X上安装Git,以及Windows上安装Git,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • Spark自定义累加器的使用实例详解

    Spark自定义累加器的使用实例详解

    这篇文章主要介绍了Spark累加器的相关内容,首先介绍了累加器的简单使用,然后向大家分享了自定义累加器的实例代码,需要的朋友可以参考下。
    2017-09-09
  • 服务器常见问题汇总(常见故障及相应的解决方法)

    服务器常见问题汇总(常见故障及相应的解决方法)

    服务器一般是很少出现问题的,一旦出现问题,怎样去积极的抢救呢?我们不能坐以待毙,原因一旦服务器故障,那么该服务器上的所有网站将都会无法打开。对于一个企业来说,网站就是他们的命脉,损失是巨大的
    2017-04-04

最新评论