我有這個奇怪的問題。我在服務器上有3個WCF服務。經理服務是外部請求的主要入口點。另一項服務是應用程序的邏輯。第三項服務是數據庫連接服務,這兩項服務都涉及並且正在完成大部分工作(數據庫都是這樣)。服務請求在客戶端在同一臺服務器上進行服務時排隊
當我運行請求管理器的負載測試和運行性能測試,我得到了90級不同的線程同時運行,第二個服務了約50和數據庫連接只有約12
我覺得這是應用程序中的主要性能問題。當我分析這兩種服務時,我發現他們確實在等待數據庫服務的響應。
我試着直接對DB服務進行測試。我運行了80個線程,並在打開通道之後並在發送請求之前使用ManualEventHandler停止它們。那麼當所有的準備工作完成時,我已經設置了處理程序,並在數據庫連接服務中運行了大約25個線程
所以它能夠處理多於12個線程。
有什麼想法是怎麼回事?
爲什麼請求排隊?
一些額外的信息:
綁定是basicHttpBinding的,但我試着用同樣的結果淨管IPC。 我已經設置上下文模式和併發性爲每次調用或每個會話倍數相同的結果。
此外,服務是自我託管。 這是體系結構的原因就是爲了讓多個其他服務或應用程序直接向這些服務發送請求。在這個特定的事件中,我按照描述測試它,在其他事件中,流程可能會有所不同。
您是否對'ConcurrencyMode'設置進行了任何設置?請參閱:http://msdn.microsoft.com/en-us/library/system.servicemodel.concurrencymode.aspx。它對服務間通話有影響。 –
爲什麼這個設計,如果你不介意我問?對我來說似乎是在尋求麻煩。 –
@thecoon爲什麼會這樣麻煩?你能詳細說明嗎? – Mithir