【发布时间】:2017-10-13 06:43:30
【问题描述】:
每当我从另一个调用一个服务结构服务时,代理上的第一个调用非常慢,即比所有后续调用慢 100 倍。我已经在调用前的时间记录中记录了时间,然后在被调用的服务方法中立即记录了时间,这很容易超过 60 秒!服务结构集群是在 12 个节点/VM 上运行的独立集群。
有趣的是,第一次调用的时间长度似乎与节点的数量有关,即如果我停用一半的节点,时间会减少(尽管不是一半)。此外,当在我的本地 PC 上运行的开发集群上运行完全相同的代码时,第一次调用的时间长度通常约为 8 秒,随后的调用在任一系统上的时间都小于 10 毫秒。此外,在同一个客户端进程中为同一个服务创建另一个代理仍然会导致快速调用时间,似乎代理工厂(我相信 SF 缓存每个客户端进程)是在第一次使用代理时创建的,并采取很长一段时间。
有趣的是,没有抛出异常并且服务确实有效!
所以我的问题是,为什么第一次在使用 ServiceProxy.Create() 创建的代理上从一个服务调用另一个服务需要这么长时间?
【问题讨论】:
标签: performance proxy azure-service-fabric