我遇到了生产性能问题,我很难过。我希望有人看到类似的东西,或至少有一些故障排除技术。
我支持从共享网络驱动器检索文件的继承的asp.net Web应用程序。一个特定的文件夹[我们称之为FOLDERA]我选择进行故障排除包含大约300mb的文件和多个子文件夹。对于此应用,FOLDERA被认为很大。从最近开始,用户在生产网络共享上从FOLDERA检索文件时性能较低。我将代码缩小到asp.net应用程序中的GetDirectories方法。
RootDir.GetDirectories("*", SearchOption.AllDirectories);
在制作中,FOLDERA读取大约需要8-10秒。在最近的性能下降之前它大约是1秒。在测试环境中,使用相同数量的数据需要1-2秒。
我的理论是网络问题,因为用户注意到问题的同一个周末是同一个周末网络和硬件升级。但是,我不知道如何向网络工程师确定或证明这一点。
我很欣赏有关可能发生的事情的想法。
答案 0 :(得分:0)
我在大型共享目录上使用了相同的方法来提取和索引数千个pdf文件(~80000,大小无关紧要),没有性能问题(1-2秒)
您可以尝试使用外部程序在开发和生产环境之间对文件共享中的IO进行基准测试,以证明您的理论,消除任何软件缺陷并将问题传递给基础架构员工。
另一方面,您可以使用CacheDependency在服务器端轻松缓存此信息,具体取决于应用程序体系结构。如果这是一项核心功能,这将极大地优化性能。