Linux 将图片保存在本地目录的性能问题

2019-08-07 19:36:16 +08:00
 lowman

项目开发中, 前期不打算搭建文件资源对象服务器, 但是项目中存在用户上传图片及文件的功能, 目前是将图片直接保存在服务器上的某个目录路径下, 然后配置通过 nginx 访问读取图片数据, 那么问题就是, 以这样的方式保存图片(因为 web server 层的原因, 尚且没有办法做到按日期创建目录, 分类保存图片, 目前是所有图片都保存在一个目录下), 当图片数量达到什么样的数量级的时候访问图片会出现比较严重的性能问题????

如果项目运营稳步提升的话, 后续会考虑搭建一个专门的服务器来保存图片资源, 目前也正在调研几个开源项目, 但是就是希望能知道保存在单一目录下的数量瓶颈是多少, 以便后面能及时的迁移.

有那位大佬对这方面的东西比较了解,还望告知一二, 小弟跪谢.............我也会喊 66666666..................手动狗头.gif

5249 次点击
所在节点    Linux
31 条回复
YIsion
2019-08-07 19:42:20 +08:00
最大问题不是性能问题,是带宽问题。图片的数据量级可是比字符串多了很多。
lowman
2019-08-07 19:49:06 +08:00
@YIsion 假设带宽, 服务器硬件资源都能满足, 单个目录下保存了大量的图片, 通过 nginx 访问获取. 在这样的前提条件下, 想知道这个数量瓶颈在哪里, 不是 ls 之类的操作.........
akira
2019-08-07 20:02:15 +08:00
单目录下 大概 3w 个文件吧
eonboy
2019-08-07 20:05:57 +08:00
大胆猜一下,会与文件系统有关系吧,所以系统相关信息多列点,有助于大佬解答...
sunkwei
2019-08-07 21:15:09 +08:00
另外一个思路,可以把图片内容保存到数据库中,如果写少读多,sqlite3 就行,作机器学习的 datasource 时,经常使用 sqlite3,几百万张照片没问题。
bkmi
2019-08-07 21:47:28 +08:00
你后台只有一台服务器吗?
如果只有一台那随便你怎么干了…
不是的话还是单开存储服务吧
xjtufreeman
2019-08-07 21:48:51 +08:00
可以用 oss 啊
airqj
2019-08-07 22:08:07 +08:00
为什么不用 oss.....
abcbuzhiming
2019-08-07 22:11:18 +08:00
abcbuzhiming
2019-08-07 22:12:06 +08:00
@xjtufreeman
@airqj
为什么你们一个二个都好像 oss 不要钱一样?
arrow8899
2019-08-07 22:13:32 +08:00
通过文件路径读取文件,基本不存在性能问题,查找文件是根据文件名 hash 查找;真正影响的应该是硬盘本身的性能。
arrow8899
2019-08-07 22:15:53 +08:00
@arrow8899 但是文件太多,对一些工具可能会有影响,比如 ls 命令,nginx 的 auto_index 功能等。
Caballarii
2019-08-07 22:19:45 +08:00
oss 能花了几个钱啊,比人力便宜多了
jugelizi
2019-08-07 23:06:21 +08:00
...能用钱解决的事还不好
说真的 小系统怎么玩都行
客户量大的还是上云端 花的钱远比你后期投入的划算
lowman
2019-08-07 23:25:39 +08:00
@eonboy 文件系统的格式限制的是单个目录下的文件数量, 整个服务器的文件数量应该与系统的 inod 有关
lowman
2019-08-07 23:27:45 +08:00
@bkmi 多台 web server 其实也可以做到直接保存到本地目录的, 比如在 nginx 配置一下, 当然还是看需求
lowman
2019-08-07 23:28:03 +08:00
@xjtufreeman 后续会考虑
lowman
2019-08-07 23:31:26 +08:00
@abcbuzhiming 文件系统的差异影响的是最大数量, 这点是知道的, 疑惑的就是在不超过最大数量的前提下, 当数量达到多少, 通过 nginx 读取图片时, 会出现体验过差, 应该还是磁盘 io 性能的限制
lowman
2019-08-07 23:32:36 +08:00
@abcbuzhiming 后续看项目发展吧, 起不来, 肯定不去考虑这些了
lowman
2019-08-07 23:33:37 +08:00
@arrow8899 我在很多地方查询到的答案和你的理解都比较类似

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

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

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

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

© 2021 V2EX