2011-07-25 17 views

回答

2

我不明白你爲什麼需要分析這些應用程序的任何不同。您想要分析您的應用在生產服務器上的行爲方式 - 繼續操作。

一個單個請求仍然會在執行的單個實例,你會從同一實例獲取數據。如果你想分析位於不同物理層的服務,那需要不同的方法;涉及通過內部端點進行的溝通,我確信迷你簡介不支持開箱即用。但是,修改不應該那麼複雜。

但是,你想要分析物理上分離的層,我會以不同的方式去解決它。具體而言,獨立地分析每一層。因爲這就是我如何優化它。如果您將調用包裝到分析器語句中的其他層,您可以看到問題出在哪裏,仍然能夠解決問題。

+2

當請求在單個實例上執行時,分析器的默認實現是這樣的:結果存儲在當前的ASP.Net Cache中,然後使用ajax調用提供給客戶端 - 並且ajax調用isn不保證能夠訪問同一臺服務器。 – Stuart

+0

說實話,爲了分析,我直接在遠程實例上進行配置文件,甚至沒有通過負載平衡器。我想在分析沒有弄清楚它們是否與它有關的情況下消除外部服務。但話雖如此,我也很樂意回答你如何使它工作。但是,我也會直接在實例上使用RDP進行配置文件。 –

+0

我同意你的觀點......但是,有時候你想調查生產過程中出現的問題 - 例如在正常的操作負載下 - 如果你使用RDP,你不能真正做到這一點,因爲這需要Web服務器退出負載均衡器列表。不過,這只是一種情況,我同意在其他許多情況下可以使用RDP解決方案。 – Stuart

2

默認情況下,mvc-mini-profiler使用HttpRuntime.Cache存儲並提供其結果。這會在多實例環境中導致一些問題。

如果使用多個實例,那麼你也許能夠使這項工作的一些方法是:

  • 到HTTP緩存更改爲AppFabric的緩存實現(或memcached的實現)
  • 到使用另一種存儲策略爲您的個人資料結果(代碼包括SqlServerStorage作爲一個例子嗎?)

顯然,兩者的戰略選擇將需要更多的時間/資源不僅僅是單個實例執行。