关于 minio 大量小文件超时问题

2022-04-09 06:34:11 +08:00
 wunonglin

硬盘:东芝(TOSHIBA) 8TB 7200 转 256M SATA 企业级硬盘(MG08ADA800E)

目前是这样:TrueNAS -> NFSv4 ( hard|proto=tcp|noresvport|nolock )-> k8s -> minio 独立部署

现在有 100 多万个 object ,object 大小在几 m 范围内,但是现在无论是用 minio 的 mc 去 list ,或者是 s3 的 sdk 自己去 list 都是超时,限制取几个 object 都不行。

现在是要如何处理这个问题?

自己用的性能低点没关系,但这加都加不出。。。还是说要换成全固态+缓存盘才能解决?

2231 次点击
所在节点    程序员
5 条回复
xiaoz
2022-04-09 08:41:29 +08:00
你是搭建的单机版 minio 吗?单机版存在这样一个问题,就是如果一个文件夹 a/下面有多个 object ,你 100 万个全放 a/下面,list 性能会非常低,单机版似乎是以源文件方式直接存到磁盘的。

建议:一个目录 a/(说目录可能不是特别准确),不要放太多的 object ,应该分开放。比如以日期,或者文件 hash 取几位建目录再把 object 放进去。
460881773
2022-04-09 09:36:08 +08:00
养肥了再来学习
knives
2022-04-09 10:02:45 +08:00
minio 的存储实际上是通过 NFS 挂的 TrueNAS 空间?

曾经在生产环境上这么干过,用的集群部署,存储大量小文件。文件数量上来后性能很差,平均响应时间 6~8s 。后来直接上了全固态后响应时间变毫秒级了。

不过,不排除是服务器当时网络不行,当时只连了一个千兆线。
wunonglin
2022-04-09 13:05:00 +08:00
@xiaoz #1 估计只能分文件夹形式了。主要是我是用 oss 的,当时全是放在根目录,没啥性能问题,谁知道自己搭会碰到,裂开。。。


@knives #3 我局域网也是千兆,主要是我看在 nas 上也是 list 很慢,慢到接受不了,应该不是网络的问题。磁盘性能问题没跑了,大小小文件还是没法用机械盘。。没用固态是因为都是冷数据,可能放了几百年不看一次的。。我就想着慢几秒都都没事,能加载出来就好,谁知道。。。
hzj629206717
285 天前
@xiaoz 的建议不错。单机版一个 bucket 就是一个本地目录,如果数量太多,就自己划分多级结构进行分散。

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

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

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

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

© 2021 V2EX