加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 处理大量临时小文件

发布时间:2020-12-13 16:57:28 所属栏目:Linux 来源:网络整理
导读:我有一个Web服务器,可以保存缓存文件并保存7天.文件名是md5哈希值,即正好是32个十六进制字符长,并保存在如下所示的树结构中: 00/ 00/ 00000ae9355e59a3d8a314a5470753d8 . .00/ 01/ 你明白了. 我的问题是删除旧文件需要很长时间.我每天都有一个cron工作 fin
我有一个Web服务器,可以保存缓存文件并保存7天.文件名是md5哈希值,即正好是32个十六进制字符长,并保存在如下所示的树结构中:
00/
  00/
    00000ae9355e59a3d8a314a5470753d8
    .
    .
00/
  01/

你明白了.

我的问题是删除旧文件需要很长时间.我每天都有一个cron工作

find cache/ -mtime +7 -type f -delete

这需要半天以上才能完成.我担心可伸缩性及其对服务器性能的影响.此外,缓存目录现在是我系统中的一个黑洞,偶尔捕获无辜的du或发现.

LRU缓存的标准解决方案是某种堆.有没有办法将其扩展到文件系统级别?
是否有其他方法以一种易于管理的方式实现这一点?

以下是我考虑的想法:

>创建7个顶级目录,每周一个目录,每天清空一个目录.这会将缓存文件的查找时间增加7倍,使文件被覆盖时非常复杂,而且我不确定它对删除时间的作用.
>将文件保存为MySQL表中的blob,其中包含名称和日期的索引.这似乎很有希望,但在实践中它总是比FS慢得多.也许我做得不对.

有任何想法吗?

解决方法

存储文件时,请创建指向按日期而不是按名称组织的第二个目录结构的符号链接.

使用“名称”结构检索文件,使用“日期”结构删除它们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读