linux-rsync许多带有长文件名的小文件占用大量带宽
我有一个文件存储服务器,它使用文件的sha256哈希作为文件名以及文件扩展名在磁盘上存储文件,并在三个级别的目录中存储,例如:带有sha256散列的PDF文件AABB1F1C6FC86DB2DCA6FB0167DE8CF7288798271EA24B68D857CBC5CF8DC66A将存储在如下的子目录中:
<根> /AA/BB/AABB1F1C6FC86DB2DCA6FB0167DE8CF7288798271EA24B68D857CBC5CF8DC66A.pdf 文件将添加到目录结构中,但永远不会被删除或修改. 我使用每10分钟运行一次使用rsync将文件推送到远程服务器的cron作业保留此文件结构的实时副本.由于文件在添加后永远不会被删除或更改,实际上它只会发送新文件. 我发现rsync用于比较两个目录(即没有变化)的带宽约为11 MB,随着文件总数的增长而增加(目前为148 207).这是有道理的 – rsync实际上必须将所有文件名的列表发送到远程服务器,以确定远程服务器上缺少哪些文件名. 所以我的问题是:有没有办法减少使用的带宽?它不一定是基于rsync的解决方案,但它更可取.我正在考虑将rsync查看的文件限制为仅最近修改过的文件,即在上次同步后修改,但似乎不推荐:rsync only files created or modified after a date and time 还有其他建议吗? 解决方法
在大多数情况下,这是不推荐的,但鉴于您的目标是减少差异计算带宽,这是合适的.请考虑以下脚本流程:
>触摸一个文件作为你的“高栏”,这需要系统地命名,而不是覆盖你的最后一个“高栏”,现在是你的“低栏”.该脚本将在这两个文件日期之间传输mtime.请注意,您不得重命名或以其他方式更改这些文件上的日期戳. 这并不像inotifywatch那样令人敬畏,但它也不会在8000个目录之后中断,并且您的层次结构似乎最多使用256 65536 dirs. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |