[转]真正的inotify+rsync实时同步 彻底告别同步慢

我们公司在用inotify+rsync做实时同步,来解决分布式集群文件一致性的问题。但当web文件越来越多(百万级数量html,jpg等小 文件),同步就越来越慢,根本做不到实时,按照网上的调优方法都尝试过,问题根本没有解决。经过我一翻细致研究,终于把慢的核心问题研究明白,先总结一句 inotifywait响应不会有延迟,rsync也很快。大家同样有慢的烦恼,那是因为网上的inotify+rsync的教程都是坑。下面我们来分 析。 inotifywait 单独分析 1 /usr/local/bin/inotifywait -mrq --format '%Xe %w%f' -e modify,create,delete,attrib /data/ 执行上面命令,是让inotifywait监听/data/目录,当监听到有发生modify,create,delete,attrib等事件发生时,按%Xe %w%f的格式输出。 在/data/目录touch几个文件 1 touch /data/{1..5} 观看inotify输出 1 ATTRIB /data/1 -- 表示发生了ATTRIB事件 路径为/data/1 ATTRIB /data/2 ATTRIB /data/3 ATTRIB /data/4 ATTRIB /data/5 知道上面的输出效果之后 我们应该想得到,可以用rsync获取inotifywait监控到的文件列表来做指定的文件同步,而不是每次都由rsync做全目录扫描来判断文件是否存在差异。 网上的inotify+rsync分析 我们来看网上的教程,我加了注释。(网上所有的教程基本都一模一样,尽管写法不一样,致命点都是一样的) 1 2 3 4 5 6 #!/bin/bash /usr/bin/inotifywait -mrq --format '%w%f'-e create,close_write,delete /backup |while read file #把发生更改的文件列表都接收到file 然后循环,但有什么鬼用呢?下面的命令都没有引用这个$file 下面做的是全量rsync do cd /backup && rsync -az --delete /backup/ rsync_backup@192.168.24.101::backup/--password-file=/etc/rsync.password done #注意看 这里的rsync 每次都是全量的同步(这就坑爹了),而且 file列表是循环形式触发rsync ,等于有10个文件发生更改,就触发10次rsync全量同步(简直就是噩梦),那还不如直接写个死循环的rsync全量同步得了。 #有很多人会说 日志输出那里明明只有差异文件的同步记录。其实这是rsync的功能,他本来就只会输出有差异需要同步的文件信息。不信你直接拿这句rsync来跑试试。 #这种在需要同步的源目录文件量很大的情况下,简直是不堪重负。不仅耗CPU还耗时,根本不可以做到实时同步。 ...

2019年6月21日 · 4 分钟 · 浅忆

553.对比Onedrive A1、A1 E3 GD等最近网盘的区别

起因 看到有大佬科普了教育版onedrive怎么查看数据中心,捋了好久终于是捋清楚了几个版本的差别。 刚好最近热度比较大的网盘我都有在用,干脆整理下做下对比。 可能还有什么没有考虑到,欢迎大佬指正。 1.几个了解到的情况 1.Googledrive,不管是教育账户,个人账户,团队盘。 使用的线路都没有什么大的差别,使用自家的服务器集群。 2.onedrive, 教育版A1,企业版E3 ,个人版都是走全球CDN, 经测试E3和A1下载地址后缀是sharepoint.com。走的cdn线路一样的。 个人版貌似线路IP不同。 3.onedrive世纪互联版数据中心在北京,上海,国内基本直通。 4.onedrive教育版,企业版,等sharepoint.com下载地址的,随着api泛滥,线路稳定性大打折扣。 5.谷歌盘单文件最大限制为 5T ,one盘单文件最大限制为 4G, 感谢大佬补充 2.Googledrive 各类型对比。 a. G Suite 价格:12刀月。 空间:标注1T 实际为无限。 隐私:保障。 国内:不可用。 国际稳定性:好。 b. Google drive社区大学邮箱版。 价格:约20-50 隐私:无保障。 (非正规付费)其余同上 c. Google drive校友邮箱版。 价格:约100-300。 隐私:无保障。 (非正规付费)其余同上 d. Google drive团队盘版。 价格:约0-200年 隐私:完全无保障。 (非正规付费)其余同上 3.onedrive 各类型对比。 a. onedrive 个人版 价格:60-100年(拼车) 空间:1T 隐私:保障。 国内线路稳定性:好。 国内:可用。 a. onedrive 世纪互联版 价格:最低32.00用户/月 感谢大佬补充 空间:1T及 隐私:保障。 国内线路稳定性:非常好。 国内:可用。 b. onedrive 开发者e3 全局 ...

2019年5月6日 · 1 分钟 · 浅忆

iperf测试udp带宽

1、Centos安装 yum 方式安装 1 2 yum -y install epel-release yum install iperf 2、Windows安装 64位 https://iperf.fr/download/windows/iperf-2.0.8b-win64.zip 32位 https://iperf.fr/download/windows/iperf-2.0.8b-win32.zip 3、测速 1 2 服务器命令行:iperf -s -u -i 1 -p 8080 -l 1380 客户端运行:iperf -u -c 10.12.23.47 -p 8080 -l 1380 -B 10.12.32.45 -t 10 -i 1 -b 200M 参数解释: 测试对端是10.12.23.47 测试对端的端口是8080 数据包大小是1380个字节 绑定本地网卡10.12.32.45 测试持续10秒钟 每隔1秒钟打印一次信息 最大发送带宽200M 参数说明 参数说明 -s :以server模式启动,iperf -s -c host : 以client模式启动,host是server端ip,iperf -c 222.35.11.23 通用参数: -f [kmKM] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位, ...

2019年4月18日 · 1 分钟 · 浅忆

Idea卡在Resolving Maven dependencies的解决方法

一直被这个问题折腾了好久,试过下面几种方法也不行 1、更换阿里、uk、镜像 2、修改maven Importing的jvm参数, 默认为700多, 直接修改成 -Xms1024m -Xmx2048m 3、更换Maven版本和升级为最新的ida 4、清除Maven缓存 5、设置IDEA代理 最后在Maven的配置文件中设置http代理完美解决 (个人觉得是有些包国内镜像也慢,不得不用到国外的源,而访问国外的源更慢,所以这里用 科学上网 的方式,设置代理让把流量转发到国外机器上面去) 1 2 3 4 5 6 7 <proxy> <id>my-proxy</id> <active>true</active> <protocol>http</protocol> <host>127.0.0.1</host> <port>10801</port> </proxy> 同理,如果在clone github上的项目也出现卡顿的情况,也是用相同的方法,设置git代理 1 2 3 4 5 6 7 8 9 # 设置ss代理 git config --global http.proxy 'socks5://127.0.0.1:1080' git config --global https.proxy 'socks5://127.0.0.1:1080' # 设置代理 git config --global https.proxy http://127.0.0.1:1080 git config --global https.proxy https://127.0.0.1:1080 # 取消代理 git config --global --unset http.proxy git config --global --unset https.proxy idea出现下载插件慢等问题,也可以设置代理

2019年4月16日 · 1 分钟 · 浅忆

544.openwrt开启ipv6引起访问网络慢的问题

前言:自定义了ipv6的DNS为240C::6666 在openwrt开启了ipv6后,有时候访问百度也觉得很慢,通过nslookup命令一看,居然解析到海外的百度ip去了, 而且解析的dns服务器居然是v6的dns,不位置为啥会给我返回百度海外的ip(估计时电信绕美,再加上国内ipv6并不完善引起的),最后用了一个最笨的方法,不传递ipv6的dns,全部由v4的dns进行解析。因为119.29.29.29之类的公共dns也是能返回v6的地址。

2019年4月5日 · 1 分钟 · 浅忆

535.E3 Ondrive各种版本说明

淘宝很多卖onderive都是撸的以下E3 A1和A1P A1和A1P都是教育版,不过呢A1P可以激活桌面版office。 E3 MSDN E3 MSDN是MSDN订阅里提取链接注册的,25用户,理论永久。 E3 Trial E3 Trial任何人都可以在官网申请,有效期一年; E3/E5 Symphony E3/E5 Symphony:这个都说不靠谱。 以上订阅都有翻车可能,不要存重要资料。 同时管理员能看见你们Ondrive网盘里面资料。 office 365 家庭版 目前官方卖的,可以和别人拼车一起买,咸鱼和淘宝大概50RMB一年,各自相互无法查看完工里面的资料(包括管理员)

2019年3月25日 · 1 分钟 · 浅忆

Proxmox 修改lxc vps的密码

用Proxmox官方提供的lxc centos7模板安装完宝塔后,nginx等等总无法安装上,看见lxc是兼容openvz的模板,就下载openvz的模板进行安装,安装完成后用设置的密码无法登录,google了下,看见一个命令能直接进入lxc容器中 1 pct enter ID 这样就可以直接修改密码了~ openvz官方模板下载地址: https://download.openvz.org/template/precreated/

2019年3月7日 · 1 分钟 · 浅忆

记录一下使用阵列卡,开机卡在左上角光标问题

最近配了一台小服务器,准备做NAS和软路由,然后跑一些小项目啥的 刚好遇到一个问题,装好proxmox后,插上阵列卡无法启动系统了,在阵列卡自检后就卡在左上角光标闪动,包括连BIOS都无法进入,只能进阵列卡控制界面。 因为我系统是单独用的一块固态,没装在sas硬盘上,估计是引导出问题了。 之后在阵列卡设置界面看到有一项 “Enable Controller BIOS”(启用控制器 BIOS) 大概意思是 选择此选项可以启用控制器 BIOS。如果引导设备在 RAID 控制器上,则必须启用 BIOS。禁用 BIOS 以使用其它引导设备。 在多控制器环境中,可以在多个控制器上启用 BIOS。但是,如果要从特定的控制器进行引导,则需要在此控制器上启用 BIOS 并在其它控制器上禁用 BIOS。然后可以从启用了 BIOS 的控制器引导系统。 尝试关闭,居然就可以了~ 参考文章:http://www.360doc.com/content/09/0824/09/226343_5200577.shtml

2019年3月6日 · 1 分钟 · 浅忆

ipmi显示不全问题

在利用ipmi安装proxmox时遇到一个问题,proxmox显示界面只有一半, 看不到右下角的同意按钮,弄了很久都没解决,包括换显示器什么的,最后群里有个大佬给我说,这是ipmi + uefi 的毛病,ipmi + uefi 分辨率只有 800x600, 最后按住 Alt+拖鼠标,把同意按钮显示出来~

2019年3月3日 · 1 分钟 · 浅忆

OVH通过IPMI安装Proxmox开VPS

最近也开始折腾proxmox了,因为这个免费~ 在OVH后台的模板中也有proxmox模板,不过呢,折腾下还是不错的~ 准备: 下载proxmox安装镜像 https://www.proxmox.com/en/downloads/category/iso-images-pve 1、连接IPMI 连接文件在OVH后台下载就好了。 注意:在国内不一定能连接上IPMI,原因你懂得 这里需要用国外机器来进行连接IPMI,同时考虑到速度问题,也要用来挂载 proxmox ISO文件 我用的是KS-3B,挂载ISO速度很快~ 2、挂载ISO镜像 按照顺序进行挂载 挂载成功 3、修改Bios启动项 这里和平常设置启动项没什么区别。 按 Ctrl + Alt+Del 重启 在开机界面按 del 进入抓板Bios 在 Boot 选项选择 CD/DVD:IPMI Virtual CDROM 300 选项 F4 保存(自动重启) 4、安装 proxmox 等待服务器自检完成后,会自动进入到安装界面 设置时区 设置密码 设置密码 设置IP信息,OVH网关一般是x.x.x254,点击Install就开始安装proxmox了 安装完成,卸载ISO镜像文件 此时点击 Reboot 重启,root密码就是刚刚设置的。 5、开VPS(开小鸡) 安装完成后浏览器进入 https://ip:8006,进入Web管理 ...

2019年2月19日 · 1 分钟 · 浅忆