情境: 我有一个客户&服务器架构。客户端程序捕获连接到计算机的多个显示,并将其保存为文件夹中的jpg文件。最低速度是每个显示器每秒5张图像。相同的文件夹通过网络共享。 我在服务器级机器上运行了一个Windows服务,它会在共享文件夹中创建后立即提取所有文件。这些文件通过asp.net页面通过img标签(如直播)在浏览器中呈现。这些文件也可用于稍后制作视频。
问题: 在8-10天后,我看到文件复制过程变慢,客户端机器在文件夹中堆叠了超过30,000个图像,但服务器由于某种原因无法拉出它。 在Red-Gate分析器的帮助下,我发现只有文件复制过程被卡住,无法移动文件。经过一段时间的服务器拉动过程覆盖了所有滞后&走上正轨。要访问文件,我使用的是Fast Directory Enumerator。更多信息http://www.codeproject.com/Articles/38959/A-Faster-Directory-Enumerator
最初我们尝试推送实现,其中客户端将图像推送到服务器文件夹,但更频繁地遇到类似的性能问题。 我确认没有网络连接问题,并且当进程滞后时CPU利用率很低。我还处理了另一个进程正在访问文件的情况,因为无法移动该文件。