当前位置: 首页 > 编程笔记 >

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

南门宇
2023-03-14
本文向大家介绍rsync备份海量文件时占用大量内存的解决方法,包括了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,使得很长一段时间内,大家不得不找各种各样的办法来处理大量的文件备份操作

 类似资料:
  • 问题内容: 我正在尝试创建一个文件下载程序作为后台服务,但是当计划了一个大文件时,首先将其放入内存中,然后在下载结束时将文件写入磁盘。 考虑到我可能同时下载许多文件,如何使文件逐渐写入磁盘保留内存? 这是我使用的代码: 问题答案: 我将回调更改为: 这工作得很好。

  • 我正在制作一个应用程序,它在一个UImageView中显示gif,从Parse加载gif。我遇到的问题是,每当我加载一个Gif时,它都会使用大约20 mb的内存,而当我执行segue时,这个内存没有被分配。我从UImageView中删除了图像本身,但它仍然没有释放内存。 这是我用来显示GIF的代码: 这可能是我记忆问题的原因吗?感谢任何帮助!

  • 问题内容: 我是所有内存管理主题的新手,所以有很多我不了解的事情。 我正在尝试将图像缓存在我的应用程序中,但是我在内存消耗方面遇到了麻烦: 所有的Bitmap Chaching代码都可以从此处复制粘贴:http : //developer.android.com/training/displaying- bitmaps/index.html 我调试了代码,并在Eclipse的DDMS视图中检查了堆

  • 问题内容: 我有一小段代码每隔五分钟拍摄一次我的桌面的屏幕截图。但是,我对它占用的内存量有些困惑-通常它会爬升到200mb RAM,我敢肯定这是多余的…谁能告诉我a)减少内存占用空间的明智方法或b)它为什么涨 可言 ? 问题答案: 其他答案是正确的:Java将使用允许的尽可能多的内存,这时它将进行垃圾回收。要解决此问题,可以在JVM设置中指定较小的最大堆大小。您可以使用- Xmx设置来执行此操作。

  • 本文向大家介绍rsync备份时自动创建目录的方法,包括了rsync备份时自动创建目录的方法的使用技巧和注意事项,需要的朋友参考一下 一直以来都习惯用 rsync + ssh 作服务器文件同步,但之前都没有在命令参数里面找到类似 mkdir -p 的功能,可以在同步某个指定文件的时候自动在目标服务器上根据需要创建完整的父级目录。比如某些按年月日自动生成的目录型文件需要在文件生成的时候即时同步: 如果

  • 本文向大家介绍海量文件复制和备份的技巧(xcopy命令实现),包括了海量文件复制和备份的技巧(xcopy命令实现)的使用技巧和注意事项,需要的朋友参考一下 网站服务器上的文件通常会越来越多,大量文件进行复制和备份的时候,使用Windows自带的复制粘贴功能,速度会非常慢,主要原因和Windows复制时候计算剩余时间有关,这给网站管理员带来了不少困扰。我这里就总结一个简单而快速的进行海量文件复制和备