我有一个网站,正在检查其性能问题和错误,我遇到了一个将数千个文件缓存到一个目录中的缓存代码。
我知道这不好,并且 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 etc
rm
我知道你不会喜欢它,但是……最好使用子目录。是的,可能会非常繁重,但你最终还是必须这样做。最好趁有时间时就做好准备,而不是等到服务器崩溃后再准备。
替代方案: - 分析是否可以删除一些文件而不缓存它们。