0

我有一个带有同位缓存的网络角色。这个角色有两个实例。

即使有缓存命中,我们的请求的周转时间也只有几秒钟。经过分析,我们发现缓存取回数据所需的时间平均为 1 秒。但是,IIS 日志表明请求的整体服务大约需要 4 秒。从缓存中检索数据之前或之后没有中间操作。

这里有什么问题?什么是分析问题的好方法?

4

2 回答 2

1

值得一提的是,我们在 Azure 中的 Redis 缓存和 RESTful API 中遇到了类似的问题。

问题原来是数据的序列化。

一些调试问题的方法:

  1. 下载 ANTS 配置文件(它有免费试用版)并在本地配置您的工作人员角色。
  2. 为您的辅助角色启用分析,部署它,运行一段时间,然后在 Visual Studio 中下载配置文件。(您可以使用服务器资源管理器查找您的实例并下载日志)。
  3. 下载 Azure 工具包 ( http://blogs.msdn.com/b/kwill/archive/2013/08/26/azuretools-the-diagnostic-utility-used-by-the-windows-azure-developer-support- team.aspx)在您的实例上。它有诸如 Process Explorer 之类的东西,可以告诉你你的角色占用了多少内存、多少 CPU、它在网络上做了什么等。
  4. 您可以联系 Azure 支持并让他们帮助您分析您的应用程序。我们做到了,并得到了绝对惊人的支持。他们通过电话与我们交谈了几个小时,并帮助我们分析了我们的代码。
于 2013-10-14T16:02:17.860 回答
0

您确实应该提高客户端和服务器的日志级别,请参阅In-Role Cache Troubleshooting and Diagnostics (Windows Azure Cache)并查看性能计数器。如果读取操作 (GET) 需要很长时间,则其中一个实例中可能存在分页,或者服务器上可能存在过载。如果您在缓存实例上发现任何性能问题,则应使用角色内缓存 (Windows Azure 缓存) 的容量规划注意事项重新评估容量。

如果这没有帮助,请打开支持票。

于 2013-10-14T16:23:26.893 回答