我支持将文件存储在 Windows Server 2003 SP2 文件共享上的内部应用程序。由于当前配置存储文件的方式,一个文件夹中有大约 116,000 个文件(另一个有大约 65,000 个文件,其他文件夹更少,但每个文件夹仍有数千个文件)。应用程序写入文件变得非常缓慢。
文件布局可配置为现存的,所以我试图提出一个更好的计划。在 SMB 开始变得无法使用之前,有没有人知道每个文件夹可以处理多少个项目?在这种情况下,它已经慢了很长时间,但直到文件夹超过 100,000 个文件才开始变得无法忍受。
它更多地取决于带宽和延迟(尤其是延迟),而不是文件数量和用于枚举目录的算法中的缩放。我想,没有“幻数”,这就是我要说的。
SMB 协议对于需要大量的往返行程是可怕的。例如,具有两倍延迟的文件数量将是两倍多的速度。
您偶然对 LAN、网络基础设施的延迟和服务器计算机的 IO 子系统延迟进行了基准测试。你显然找到了一个“神奇的数字”。我会缩减该目录,直到性能变得更好。没有别的办法!
埃文是对的,没有神奇的数字。这取决于应用程序和服务器。升级到服务器 2008 会有所帮助,这是我要做的第一件事,只要客户端是 vista 或更好,因为他们使用 SMBv2。我的共享文件有 500,000 个文件,它们像垃圾一样浏览,但是由于用户只使用提供的直接路径,所以工作正常。在同一台服务器上,我共享了 100,000 个用户没有问题的文件。
部分相关:
和
(取自http://basiccoms.blogspot.com/2008/08/windows-xp-performance-tweaking-guide.html)