【问题标题】:How do I find out maximum throughput of a WCF service?如何找出 WCF 服务的最大吞吐量?
【发布时间】:2012-07-20 04:48:36
【问题描述】:

我正在使用 NetTcpBinding 对 WCF 服务进行负载测试。为此,我有一个单元测试,它调用服务并要求 X 个数据结果,我在负载测试(Visual Studio 2010)中使用这个单元测试。

问题是我不知道如何找出服务的最大吞吐量。我不断更改负载测试中的用户/客户端数量,并尝试查看是否能更快地获得结果。有没有更好的办法?

【问题讨论】:

    标签: visual-studio-2010 wcf load-testing


    【解决方案1】:

    如果您想测量 WCF 服务的性能,您可能需要使用称为性能计数器的内置机制。它允许您在代码中添加一些诊断指令,例如增加计数器,然后在 perfmon.exe 工具中查看结果。更多关于http://msdn.microsoft.com/en-us/library/ms735098.aspx的信息。

    我想您可以使用它来测试服务对特定数量的客户端的响应速度以找到最大吞吐量。

    【讨论】:

    • 我尝试按照您建议的文档进行操作,但在将 system.serviceModel 添加到 app.config 文件后无法启动服务。错误 1053:“Windows 无法在本地计算机上启动服务”。我有这台机器的管理员权限。
    • 尝试将其添加到应用程序的 web.config 中。有关您当前配置的更多详细信息可能会有所帮助。
    • 我们有自定义配置,我们使用 TCP 双工绑定。凭借提升的权限,我们设法启用了性能计数器并能够在 PerfMon 中看到它们。但是,现在我正在努力找出究竟要使用哪个计数器从一个非常大的计数器列表中找出吞吐量!
    • 我不是你想要的,但不妨看看 ServiceOperation 性能计数器类型。但是,您可能还想查看有关 WCF 负载测试的类似主题:stackoverflow.com/questions/221973/…
    • 感谢 Lukasz 的建议。我现在决定对测试执行时间和用户/秒负载进行趋势分析。在监视了一个月左右的趋势之后,我可以得出一些用户/秒,这可以提供我们服务的最佳性能。大概可以认为是系统支持的最大吞吐量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    相关资源
    最近更新 更多