我们在Windows 2008上有一台IIS-7服务器。一个自定义的Web应用程序写入客户端上传到NTFS分区的文件。每年我们有40,000-60,000个文件夹,每个文件夹有2-20个文件。尝试在资源管理器中打开一年的文件夹是一个问题,可能需要花费几分钟来建立文件夹列表。如果这对于整个系统来说是一个问题,这会让我感到困惑。
我猜更简单的问题是,如果我们的Web应用程序通过精确路径直接访问文件,是否会有成千上万个文件仍然使速度变慢?
最佳答案
Windows(NTFS)不会永久性地缓冲$ MFT-根据内存的不同,可能(非常好地给定大小)从磁盘读取$ MFT可能需要一段时间,并且会停止所有卷访问尝试。
我一直在与之抗争一段时间,唯一的解决方案是减小目录大小。代替(平坦)例如\ 2017-07-20.log等在单个巨大的文件夹中,请使用\ 2017 \ 07 \ 2017-07-20.log。这样,就不会增加文件夹的大小,并且-假设可以更频繁地访问当前文件夹-文件夹访问的位置会大大提高。
如果您不能这样做,唯一的解决方法是通过剥离8.3名称来减少$ MFT大小,而不要使用过于复杂的名称,ACL,审核等。
另一种解决方法是在计算机中添加内存以改善缓存。