简单记录一下,后续补充。

1,之前使用了 rsync 增量同步的方式。即服务端作为生产站点,客户端作为备份站点。当目录文件达18GB时,每个文件20KB左右时,10级目录。光du -sh就会执行7,8个小时。rsync做一次同步时,也需要花费这么长的时间。原因是生产站点记为SiteA,备份站点记为Site B。Site B同步时,需要比较与A的区别,而后才能具体同步对应的文件。实际比较的过程会在Site A上消耗大量的IO,因为Site A需要读取出来,告诉Site B自己是什么样的。通过ionice可以让业务正常触发,但是同步时间过长不能接受。

2,因此,减少比较时间才是本次优化的重点。实际能够解决的有效方式:第一,先记录变化的文件和目录,第二,同步这些变化的目录。关于记录变化的文件和目录这一点,a.可以考虑使用inotifywait,但是我没有试过;b. 自己记录也是一条路,不过多个进程修改时,会破坏事务性,也会增加程序的工作。关于同步这些变化的目录,rsync就可以轻松搞定。

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐