【问题标题】:Polling webservice performance - Will this work?轮询 Web 服务性能 - 这行得通吗?
【发布时间】:2009-01-07 20:44:13
【问题描述】:

我们的应用需要即时通知,所以很明显我应该使用一些 WCF 双工或套接字通信。问题是应用程序是部分信任 XBAP,因此我不允许使用除 BasicHttpBinding 之外的任何东西。因此我需要轮询更改。

问题来了:我的 PM 说更新间隔应该是 2 秒左右,并且在单个 Web 服务器上有 500 个用户的 Intranet 上运行。

你们中是否有人体验过轮询会如何影响 Web 服务器。

该服务非常简单,它将一个 guid 作为 arg,并返回一个 guid 列表。所有数据访问都被缓存,所以我猜服务器上的负载对于一次调用来说是最小的,但是对于 500 ......

除了轮询,网络服务器几乎没有什么工作。

那么,根据这个小信息(假设是标准服务器硬件,不管它是什么),是否有可能做出合格的猜测?

  • 是否有可能实现这一点,它会起作用吗?

是的,我知道估计这很困难,但如果你们中的一些人能就此分享一些想法,我会非常高兴

问候

拉尔西

【问题讨论】:

    标签: asp.net performance web-services notifications xbap


    【解决方案1】:

    不要估计,做基准。

    【讨论】:

      【解决方案2】:

      轮询..不好,但如果你别无选择,那么它是理想的:)

      请记住,您无疑会启用 keep-alives,因此您将拥有 500 个永久连接的用户。其内存使用量可能比处理器使用量更重要。我无法想象网络访问(即使是在相对臃肿的网络服务中)会占用大量网络容量,但您的网络延迟可能会成为一个问题——尤其是当我们都看到网络应用程序“暂停”一段时间时。

      虽然最后,你可能会没事,但你必须自己检查一下。 web服务压力测试的人很多,一个可以用Microsoft's WAS tool,别人用a few links

      【讨论】:

        【解决方案3】:

        尝试使用 Web 服务测试工具 soapui 来检查您的 Web 服务的性能。有付费版和免费开源版。

        干杯

        【讨论】:

          【解决方案4】:

          我认为这不会是一个特别的问题。我想每个请求的响应时间会很短,除非您要撤回大量数据,因此 2 秒内分布的 500 个连接不应该造成太大影响。

          在您提交此设计之前,您可以使用压力测试工具来验证您的网络服务器是否可以处理负载。

          【讨论】:

            【解决方案5】:

            250 qps 可能在硬件和网络带宽相当适中的情况下是可行的,前提是您确实最大限度地减少了来回发送的数据。我假设您在客户端缓存这些 GUID 列表,因此您可以在正常情况下发送一个小的“无更新”响应。

            应该很容易使用简单的原型进行测量,但更自信。

            【讨论】:

              猜你喜欢
              • 2013-11-11
              • 2012-04-15
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-08-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多