1

我开发了一个 RESTfulWCF服务 ( WebHttpBinding),它是一个 AppFabric 缓存客户端。我使用 jMeter 进行了性能测试。测试计划包含服务中的一项操作,将在 100 个并发线程中调用。

但是,我注意到在运行测试后,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 相关代码时,它都可以正常工作。请注意,我只使用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>

有人可以就导致这种初始延迟的原因给出一些指示吗?

4

1 回答 1

0

如果您进行性能测试,则必须从热身期开始。在此期间,您允许应用程序启动,并填充所有缓存。在启动期之后,您可以测试应用程序的实际性能。

在实践中,您启动应用程序并运行几分钟而不测量性能。然后开始测试并测量性能。您会看到在测试开始时没有启动延迟。

于 2012-08-02T08:41:20.123 回答