【问题标题】:NetNamedPipe: varying response time when communication is idlingNetNamedPipe:通信空闲时变化的响应时间
【发布时间】:2010-10-20 10:31:32
【问题描述】:

我有两个 WCF 应用程序通过命名管道进行单向通信。一切都很好,除了一件事: 通常,请求/响应周期需要零(边际)时间。但是,如果有一个时间跨度,比如半分钟没有任何通信,请求/响应会增加到 ~300-500 毫秒。

我环顾网络,我想到了使用心跳/ping 机制来保持通信通道繁忙的想法。通过反复试验,我发现每 10 秒执行一次请求时,响应时间保持在较低水平。从大约 15 秒的间隔开始,“打嗝”响应时间开始出现。

现在我想知道这种现象是从哪里来的。我尝试将双方所有可能的超时设置为 > 1 分钟,但这没有帮助。

谁能解释那里发生了什么?

【问题讨论】:

  • 我也有同样的问题。起初我怀疑缓存,但如果在之前调用服务的 15 秒内请求新数据,则会立即返回。

标签: .net wcf web-services named-pipes performance


【解决方案1】:

查看董文龙的博文,Why Does WCF Become Slow After Being Idle For 15 Seconds?

该帖子还包括一个解决方法,直到它得到修复。

【讨论】:

    【解决方案2】:

    空闲进程是否可能被分页到磁盘?如果你让两端的进程都忙,但不让连接忙,还会发生吗?

    可能不是这样,但可能值得一试。

    【讨论】:

    • 我试过了,并在两个进程中添加了一个线程来做一些愚蠢的计算。两者的 CPU 使用率都保持在 0%,但我认为这仍然足以防止它们被调出。唉,所描述的问题仍然不受影响。不过,这绝对值得一试。感谢您的建议-
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 2012-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多