Linux文件系统或CDN,用于复制数百万个文件

Linux文件系统或CDN,用于复制数百万个文件,第1张

概述请告诉我这个场景的解决方案: >数百万个文件,位于一个目录中(“img / 8898f6152a0ecd7997a68631768fb72e9ac2efe1_1.jpg”) 平均文件大小约为80k > 90%随机读取访问权限 >备份(复制)到其他服务器(每5分钟或立即) >图像元数据保存到数据库中 当文件数量超过2百万时,我们遇到了随机访问时间慢的问题. 文件系统是带有noatime和dir_in 请告诉我这个场景的解决方案:

>数百万个文件,位于一个目录中(“img / 8898f6152a0ecd7997a68631768fb72e9ac2efe1_1.jpg”)
平均文件大小约为80k
> 90%随机读取访问权限
>备份(复制)到其他服务器(每5分钟或立即)
>图像元数据保存到数据库中

当文件数量超过2百万时,我们遇到了随机访问时间慢的问题.
文件系统是带有noatime和dir_index选项的ext3,但不需要使用’ls’或’find’之类的命令.

我认为可行的解决方案:

>继续使用ext3,只需将目录树结构转换为“img / 889 / 8f6 / 152 / a0ecd7997a68631768fb72e9ac2efe1_1.jpg”
>迁移到其他文件系统(ReiserFS,XFS,EXT4等)
>使用分布式文件系统设置存储引擎(举例)
>或者其他……

如果我们选择1或2,我们如何复制? rsync无法处理ext3文件系统上的这么多数据.

对我们来说最好的解决方案是使用Amazon S3,但这对我们的流量来说太贵了…也许你推荐一些类比(便宜的CDN或开源项目)

解决方法 一个目录中的数百万个文件设计糟糕,速度很慢.将它们细分为具有较少条目数的目录.

看看https://unix.stackexchange.com/questions/3733/number-of-files-per-directory

使用RAID和/或SSD.这本身并不能解决访问速度慢的问题,但是如果你引入多个目录并减少每个目录的文件数量,比如一个数量级或两个数量级,它将有助于防止热点.

考虑XFS,特别是在使用多个驱动器和多个目录时,它可能会带来不错的收益(例如,请参阅this线程以获取使用的选项.它为md RAID上的XFS提供了一些提示).

总结

以上是内存溢出为你收集整理的Linux文件系统或CDN,用于复制数百万个文件全部内容,希望文章能够帮你解决Linux文件系统或CDN,用于复制数百万个文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1035120.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存