【发布时间】:2011-08-07 07:54:40
【问题描述】:
我正在编写一个 ASP.NET 网络服务 (.ASMX),为了测试这个网络服务,我使用了一个客户端应用程序,它创建了 100 个线程,每个线程 3 个请求。当我运行 10 次迭代时,客户端大约需要 60-70 秒,这意味着大约 3000 个请求/分钟,即使我在同一台机器上运行客户端和 web 服务,我也无法接管这个数字。我检查了机器的所有状态:RAM、硬盘、CPU……所有状态都正常(负载非常低,CPU 低于 6%,RAM 大约 80% 空闲……),并且瓶子-颈部是网络服务本身。
我尝试过 WCF,但在我的基准测试中它的性能比 ASMX 差,而且由于我的截止日期,我不能花太多时间来研究更深入的 WCF。
那么我该如何优化我的网络服务呢?如何打破 ASP.NET webservice 的限制?是否可以设法让 Web 服务每秒执行高达 5000 个请求?
非常感谢。
【问题讨论】:
-
你试过异步网络请求吗?
-
不,我还没试过。你能告诉我更多细节吗?
-
抱歉,等一下,我帮你找资源
-
添加了信息,虽然听起来我提到的工具是你所追求的 - 当你的服务器与它们一起摔倒时你将能够解决......但你可能想考虑一下创建一个“用户配置文件”并尝试模拟许多用户访问您的服务,而不是只是在没有任何模式的情况下多次调用网络方法。
-
您的网络服务是否使用任何共享资源?如果是这样,您可以查看如何控制对这些共享资源的访问。
标签: .net asp.net web-services performance optimization