我支持将文件存储在Windows Server 2003 SP2文件共享中的内部应用程序。 由于目前如何configuration存储文件,一个文件夹中有大约116,000个文件(另一个大约65,000个文件夹,其他文件夹的数量较less,但每个文件夹仍有数千个文件夹)。 写入文件的应用程序变得非常慢。
文件的布局是可以configuration的,所以我试图想出一个更好的计划。 有没有人有任何经验,每个文件夹SMB可以处理多less项目开始变得无法使用? 在这种情况下,它已经很慢了一段时间,但直到文件夹超过100,000个文件才开始变得不可忍受。
它更依赖于带宽和延迟(尤其是延迟),而不是用于枚举目录的algorithm中的文件数和缩放比例。 没有“幻数”,我想是我所说的。
SMB协议是可怕的,因为需要大量的往返旅程。 例如,这个文件的数量是延迟的两倍,比缓慢两倍还多。
您已经为LAN错误地进行了基准testing,networking基础架构的延迟以及服务器计算机的IO子系统延迟。 你显然find了一个“魔术数字”。 我会把这个目录削减,直到性能变好。 没有别的办法
埃文的权利,没有神奇的数字。 这取决于应用程序和服务器。 升级到服务器2008将有所帮助,而且这是我首先要做的事情,只要客户端使用SMBv2或更好。 我有股份,有50万个文件浏览像垃圾,但由于用户只使用提供的直接path,工作正常。 在同一台服务器上,我有100,000个文件的共享,用户没有问题。
部分相关:
停止“上次访问更新”
每当您访问NTFS驱动器上的文件夹时,Windows XP都会使用上次访问date的时间戳来更新该文件夹和所有子文件夹。 有时候,这可能会降低Windows的性能。
要改变这个,打开REGEDIT(开始 – >运行 – >'regedit')并导航到HKEY_LOCAL_MACHINES \ System \ CurrentControlSet \ Control \ FileSystem
创build一个名为“NtfsDisableLastAccessUpdate”的新的DWORD值(右键单击 – > new – > DDWORD Value),并将该值设置为“1”
和
禁用不必要的命名约定
对于每个创build的文件,windows xp都使用一个额外的名称来兼容MSDOS:8个字符的名称后跟一个“。”,然后是3个字符的扩展名。 如果你不打算使用DOS软件,这是浪费内存。
要改变这个,打开REGEDIT
导航到HKEY_LOCAL_MACHINE \ System \ CurrentControlSet \ Control \ FileSystem将NtfsDisable8dot3NameCreation键的值更改为“1”
(取自http://basiccoms.blogspot.com/2008/08/windows-xp-performance-tweaking-guide.html )