Linux-linux中 如何高效的同步文件?

项目合作 项目合作 主题:1030 回复:2135

Linux-linux中 如何高效的同步文件?

想挽留 发布于 2017-05-22 字数 676 浏览 1257 回复 2

随着用户的增多,日志量也逐渐增大,以前几百M的日志文件,感觉不到压力,可是现在大约几个G的日志文件,就开始出现了问题:
我们用rsync讲一台机器A(linux)下的日志文件同步到另一台机器B(linux),在同步过程中,发现cpu的压力非常大,瞬间飙升几倍。

所以想请问大家如何同步才能既高效又能控制住服务器的压力?另外压力具体从何而来?

这个问题有点类似"如何实现linux服务器间准实时稳定同步文件",但是不同,我主要想能降低同步时候cpu的压力,稳住服务器。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

虐人心 2017-10-08 2 楼

rsync同步文件主要绑定的cpu,磁盘绑定不多
所以导致你同步大数据文件的时候占用很多cpu
看过一篇文章有人用这几种方式复制10G的文件测试他们的性能
rsync, cpio, cp, and cat
测试结果如下
user sys elapsed hog MiB/s test
5.24 77.92 101.86 81% 100.53 cpio
0.85 53.77 101.12 54% 101.27 cp
1.73 59.47 100.84 60% 101.55 cat
139.69 93.50 280.40 83% 36.52 rsync
可见rsync还是很占cpu的
要解决你的问题
你最好把这个大的任务分成几个小任务来执行例如:

!/bin/bash

rsync /source/[0-9] root@1.1.1.1:/source_backup/
rsync /source/[a-h]
root@1.1.1.1:/source_backup/
rsync /source/[i-p] root@1.1.1.1:/source_backup/
rsync /source/[q-z]
root@1.1.1.1:/source_backup/

希望能帮到你

归属感 2017-07-28 1 楼

我想你的问题分为以下两个:

rsync同步过程中大量消耗CPU的原因。
对于这个问题,我建议你详细了解下rsync,可以点击如下资料了解
a、 rsync 的核心算法
b、 程峰同学整理的RSYNC算法资料
c、 翻译《The rsync algorithm》

资料a中有描述到:rsync在做同步时,会将文件切分成N个块,在将小块文件计算Checksum,我想这就是消耗CPU时间的主因,因为我没有实际调研过rsync,无法保证上述资料描述准确。
有没有很少消耗CPU的工具来做同步。
选择适用的工具,应该根据你对日志的实际需求来。

是否需要严格保证日志文件的内容相同
是否有某个日志为主,某个日志为从

建议:
1、 因为我是程序员的缘故,又假设你的日志是想要做分析的,我建议你为每一行日志添加上key,这样可以避免对日志同步的需求,因为有了key,可以在离线合并,也避免了日志文件的大小的暴增。
2、 分析好需求后,这个文章"如何实现linux服务器间准实时稳定同步文件"还是能帮助到你的吧!