我开发了一个RESTful WCF服务(WebHttpBinding),它是一个AppFabric缓存客户端。我使用jMeter运行了一个性能测试。测试计划包含服务中的一个操作,该操作将在100个并发线程中调用。
但是,我注意到在运行测试之后,the first 20 to 30 threads are taking considerable amount of time to get the response (say 10-15 seconds)和所有剩下的线程将在2-3秒内完成它们的执行,并打开与AppFabric缓存相关的代码。每当我评论与AppFabric相关的代码时,它就会正常工作。请注意,我只使用Get,而不使用Put。
我的服务有以下配置,如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>有谁能给我们一些建议,说明是什么导致了最初的延迟?
发布于 2012-08-02 08:41:20
如果你做了性能测试,你必须从热身开始。在此期间,您允许应用程序启动,并填充所有缓存。在启动期间之后,您可以测试应用程序的实际生活预测。
在实践中,您启动应用程序并运行几分钟而不测量性能。然后你开始你的测试并衡量你的表现。在测试开始时,您将看到没有启动延迟。
https://stackoverflow.com/questions/11773382
复制相似问题