我正在调整服务器并需要一些指导。此服务器提供以下功能:
当文件同步客户端(#3)有可用的更新时,他们会聚集服务器,要求他们的新数据。如果没有激进的限制,他们会占用所有可用的ASP.NET工作线程并导致#1和#2挂起。孩子们说,这就是sux0rs。
我在4-proc服务器上重现了这个问题。通过测试客户端创建100个同时下载,我看到48个下载同时运行;在perfmon中,我看到其余部分在ASP.NET->应用程序队列中的请求中排队。这与in this article描述的“每CPU 12个并发线程”默认设置相吻合。 CPU和内存看起来很好;它实际上只是在没有处理的情况下切换字节。
在我看来,我可以做一些事情,可能是一致的。
我的问题:
Best,roufamatic
答案 0 :(得分:1)
如果做得对,WCF是这项工作的最佳工具。如果您要发送一个静态文件,我建议查看一个异步服务impl(如果你想在没有WCF的ASP.NET中执行它的异步HttpHandler),它建立在一个设置了异步标志的FileStream上,并且客户端也写异步。这将允许您更有效地使用工作线程并将工作卸载到操作系统。同时下载同一文件的1000份副本不应该导致您的服务器在impl正确完成时瞄准。