我開發了一個RESTful WCF
服務(WebHttpBinding
),它是一個AppFabric Cache客戶端。我使用jMeter進行了性能測試。測試計劃在服務中包含一個操作,這將在100個併發線程中調用。AppFabric Cache - 性能
但是,我注意到在運行測試後,the first 20 to 30 threads are taking considerable amount of time to get the response (say 10-15 seconds)
,然後所有其他剩餘線程將在AppFabric Cache相關代碼開啓後的2-3秒內完成執行。每當我評論AppFabric相關代碼時,它都可以正常工作。請注意,我只使用獲取,否把。
我的服務有以下配置爲T的AppFabric:
<dataCacheClient requestTimeout="60000" channelOpenTimeout="15000" maxConnectionsToServer="2">
<localCache isEnabled="true" sync="NotificationBased" ttlValue="300000" objectCount="100000" />
<clientNotification pollInterval="10" maxQueueLength="100000" />
<hosts>
<host name="**********" cachePort="*******" />
</hosts>
<securityProperties mode="Transport" protectionLevel="EncryptAndSign" />
<transportProperties connectionBufferSize="131072" maxBufferPoolSize="268435456" maxBufferSize="8388608" maxOutputDelay="2" channelInitializationTimeout="60000" receiveTimeout="600000" />
</dataCacheClient>
可能有人請給一些指針,至於是什麼原因造成這種初始延遲?
我在開始性能測試之前正在爲應用程序加熱。在運行測試之前,我有一個使用瀏覽器調用的GET操作。之後,我運行測試。 – Thomas 2012-08-02 09:10:42
但是,你的熱身100線程?緩存的線程池也需要升溫。在池開始創建和添加新線程之前,需要花費幾秒鐘的時間才能「脫離線程」。這聽起來像延遲可能是你所看到的。 – ErnieL 2012-08-03 05:47:09