假设我们正在使用ext4(启用dir_index)来托管大约3M文件(平均大小为750KB),并且我们需要确定要使用的文件夹方案。
在第一个解决方案中,我们对文件应用哈希函数,并使用两个级别的文件夹(第一级为1个字符,第二级为2个字符):因此,作为filex.for
哈希值等于abcde1234,我们将其存储在/ path中/ a / bc /abcde1234-filex.for。
在第二个解决方案中,我们对文件应用哈希函数,并使用两个级别的文件夹(第一级为2个字符,第二级为2个字符):因此,作为filex.for
哈希值等于abcde1234,我们将其存储在/ path中/ ab / de /abcde1234-filex.for。
对于第一个解决方案,我们将采用以下方案/path/[16 folders]/[256 folders]
,每个文件夹平均有732个文件(文件所在的最后一个文件夹)。
而在第二个解决方案,我们将有/path/[256 folders]/[256 folders]
与平均每个文件夹45页的文件。
考虑到我们将大量(基本上是nginx缓存系统)从该方案中写入/取消链接/读取文件(但大部分是read),从性能的角度来说,如果我们选择一种或其他解决方案,它是否很重要?
另外,我们可以使用哪些工具来检查/测试此设置?
hdparm -Tt /dev/hdX
但基准测试有点困难,但它可能不是最合适的工具。
hdparm
不是正确的工具,它是对块设备原始性能的检查,而不是对文件系统的测试。