mvc mini profiler-使用负载平衡的web角色(azure等)

mvc mini profiler-使用负载平衡的web角色(azure等),azure,mvc-mini-profiler,Azure,Mvc Mini Profiler,我相信mvc迷你剖析器有点像上帝派来的 我已经将它合并到一个新的MVC项目中,该项目的目标是Azure平台。 我的问题是-如何跨服务器(角色实例)障碍处理评测? 这是可能的吗?我不明白为什么你需要以任何不同的方式来分析这些应用程序。你想评测你的应用程序在生产服务器上的行为-继续吧 单个请求仍将在单个实例上执行,您将从该实例获取数据。如果您还想评测位于不同物理层上的服务,则需要不同的方法;涉及通过内部端点进行通信,我确信mini profiler不支持开箱即用。然而,修改不应该那么复杂 然而,如果

我相信mvc迷你剖析器有点像上帝派来的

我已经将它合并到一个新的MVC项目中,该项目的目标是Azure平台。 我的问题是-如何跨服务器(角色实例)障碍处理评测?


这是可能的吗?

我不明白为什么你需要以任何不同的方式来分析这些应用程序。你想评测你的应用程序在生产服务器上的行为-继续吧

单个请求仍将在单个实例上执行,您将从该实例获取数据。如果您还想评测位于不同物理层上的服务,则需要不同的方法;涉及通过内部端点进行通信,我确信mini profiler不支持开箱即用。然而,修改不应该那么复杂


然而,如果您想分析物理上分离的层,我将以不同的方式进行。具体来说,独立地分析每一层。因为这就是我优化它的方法。如果将对另一层的调用封装在探查器语句中,则可以看到问题所在,并且仍然能够解决问题。

默认情况下,mvc迷你探查器使用
HttpRuntime.Cache
存储并交付其结果。这将在多实例环境中导致一些问题

如果您使用的是多个实例,那么您可以通过以下几种方式实现这一点:

  • 将Http缓存更改为AppFabric缓存实现(或某些MemCached实现)
  • 为概要文件结果使用替代存储策略(代码包括SqlServerStorage作为示例?)

显然,无论您选择哪种策略,都需要比单实例实现更多的时间/资源。

当请求在单实例上执行时,探查器的默认实现是,结果存储在当前ASP.Net缓存中,然后使用ajax调用提供给客户端,并且ajax调用不能保证命中同一台服务器。老实说,为了进行评测,我会直接在远程实例上进行评测,甚至不必通过负载平衡器。我希望在分析时消除外部服务,而不确定它们是否与此有关。但话说回来,我也同意你的回答,不管怎样,你都可以让它工作。但是,再一次,我会在一个实例上直接使用RDP进行评测。我部分同意你的观点。。。但是,有时您需要调查生产中出现的问题(即在正常工作负载下),如果使用RDP,则无法真正做到这一点,因为这会将web服务器从负载平衡器列表中删除。不过,这只是一种情况,我承认还有许多其他情况可以使用RDP解决方案。Stuart,您从负载平衡器列表中看到它在哪里?因为我不相信你,所以我继续做了一个测试,负载平衡器将请求路由到了我的两个实例(成功),而我RDPed到了实例0。上次我检查时,这个站点是用于知识交流的,所以欢迎你:o)顺便说一句,如果它是真的,你是对的,那么它将使探查器对此毫无用处(相当真实的)情景。