低配服务器向对外提供 1 亿个 10KB 小文件的访问,怎样存储这些小文件以充分发挥性能?存数据库靠谱吗?

2017-11-09 22:03:18 +08:00
 nonsense
100M*10KB = 10G 大小 普通月付 10 美刀的服务器的机械硬盘读取吞吐量在 50M ~ 130M 左右
首先是不是否定了直接存硬盘? 100M 的 inode 元数据一是得重新格式化分区,二是 inode 元数据也要访问机械硬盘就太慢了。
存储在 mysql/mongo/postgre 之类的数据库中,避免了元数据频繁访问,对每个文件做 hash,根据访问 hash 返回数据。cpu 能撑住的话应该能跑满峰值 1Gbps/125M 的带宽。
除直接存储和存数据库之外还有其它的存储方案吗?
2716 次点击
所在节点    云计算
8 条回复
silencefent
2017-11-09 22:52:36 +08:00
机械硬盘的 8k 小文件随机读取速度不超过 3mb/s
最新 intel 傲腾 900p 估计能达到你的需求
jadec0der
2017-11-09 23:47:01 +08:00
不知道你这是面试题还是实际问题,如果是实际问题的话可以用类似 S3 的对象存储服务来解决,各家云计算都有的
hhacker
2017-11-10 09:24:10 +08:00
这么多种子吗
hhacker
2017-11-10 09:24:56 +08:00
用对象存储可破 用低配机器去背不合理
julyclyde
2017-11-10 10:25:34 +08:00
说的就好像文件系统不带 hash 和元数据缓存似的
说的就好像数据库用的就不是机械硬盘似的

才 10G 直接放内存不就得啦
nonsense
2017-11-10 12:50:20 +08:00
@jadec0der 实际问题,最要是考虑低成本,能 10 美金一个月解决的就不用比较贵的方案。。
@julyclyde 内存才 1 ~ 2G
julyclyde
2017-11-12 15:38:00 +08:00
@nonsense 内存才 1G ?就一个虚拟机你考虑什么存储啊……
flynaj
2017-11-15 18:22:33 +08:00
多少访问量?量少怎么做都可以,量多用几台服务器

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/405094

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX