性能 – 如何分发文件和文件夹以处理大量文件

我想在我的服务器上管理大量文件(比如数百万).需要将文件保存在两个或三个级别的文件夹中,以使每个文件夹中的文件数保持较低.另一方面,有很多文件夹花费inode是不好的.

每个文件夹的最佳文件比例是多少?是否有理论方法来确定这一点,还是取决于服务器规格?

最佳答案
与您使用的文件系统相比,服务器规范可能不是问题.不同的文件系统具有不同的存储目录数据的方法.这将影响各种尺寸的扫描速度.

另一个重要的考虑因素是文件的生命周期.如果您经常添加和删除文件,您可能希望叶子目录小于它们可能的原始目录.

您可能希望查看Apache Web服务器和Squid代理使用的缓存目录结构.这些是经过良好测试的缓存,可以处理相对较高的变化率,并且可以很好地扩展.

编辑:您的问题的答案在很大程度上取决于文件的生命周期和访问模式.这些因素将显着影响磁盘I / O和缓冲存储器要求.文件数量可能不太重要.

除了选择的文件系统,内存,磁盘接口,磁盘数量和raid设置都将影响磁盘访问性能.性能需要足够的要求有一些余地.

随着写入和删除的增加,磁盘设置往往更为重要.它也可能更重要,因为对文件的访问变得更加随机.这些因素往往会增加对磁盘吞吐量的要求.

增加内存通常使得从磁盘缓冲区访问文件的可能性大于磁盘.这将提高大多数系统的文件访问性能.访问许多大文件可能会导致较差的磁盘缓存.

对于我使用过的大多数系统,访问文件的可能性与上次访问文件的时间有关.最近访问的文件越有可能再次访问.在这些情况下,散列算法往往对优化检索很重要.如果文件访问是真正随机的,那么这不太重要.

删除文件所需的磁盘I / O可能远远高于添加文件.许多系统在从大型目录中删除大量文件时存在严重问题.文件添加和删除率越高,其变得越重要.在考虑这些因素时,文件生命周期是一个重要因素.

备份是另一个问题,可能需要安排,以免它们导致磁盘缓冲问题.较新的系统允许对IO进行处理,因此备份和其他维护程序对应用程序的影响较小.

转载注明原文:性能 – 如何分发文件和文件夹以处理大量文件 - 代码日志