在一个目录中存储数千个文件

在一个目录中存储数千个文件

我有一个网站,正在检查其性能问题和错误,我遇到了一个将数千个文件缓存到一个目录中的缓存代码。

我知道这不好,并且 I/O 会降级,而且我也听说了潜在的 inode 问题。

我知道如何修复缓存代码,但问题是此时修复的成本会非常高。

问题:如果我按照现在的情况生活,最糟糕的情况是什么?网站会怎么样?(目前这个单一的缓存目录有 400K 个文件)

我是 Ubuntu 新手。我知道这可能有点题外。但我认为这是一个“系统”问题,不属于 stackoverflow 的“编程”部分。

谢谢!

更新:文件系统是UFS

答案1

UFS 与 inode 配合使用,因此最大文件数取决于已设置的 inode 与空间比率。而且这个数字非常大……远大于 400k。

2个问题:

  • 创建新文件将花费越来越多的时间。

  • 您还会遇到其他问题:由于它会扩展所有文件(变成),ls所以会出现错误。和其他一些命令也是如此。Argument list too long.ls -l *ls -l file1 file2 file3 file4 etc etcrm

我知道你不会喜欢它,但是……最好使用子目录。是的,可能会非常繁重,但你最终还是必须这样做。最好趁有时间时就做好准备,而不是等到服务器崩溃后再准备。

替代方案: - 分析是否可以删除一些文件而不缓存它们。

相关内容