Azure在服务扩展时的角色缓存异常中

时间:2014-03-14 16:44:08

标签: caching azure

我正在使用Windows Azure SDK 2.2并创建了一个使用角色内缓存的Azure云服务。

我在正常情况下运行了2个服务实例。

当服务扩展(最多3个实例,或者返回到2个实例)时,我会获得大量的DataCacheExceptions。这些通常伴随着进入缓存内部的进程的Azure数据库连接失败。 (如果我在缓存中找不到我想要的条目,我会从数据库中获取它并将其放入缓存中。所有标准内容。)

我已经在缓存获取和放置上实现了重试过程,并使用Transient Fault Handling应用程序块将ReliableSqlConnection对象与数据库连接的重试过程一起使用。 重试过程使用固定间隔每秒重试5次。

通常是失败;

Microsoft.ApplicationServer.Caching.DataCacheException:ErrorCode:SubStatus:存在临时故障。请稍后重试

知道缩放可能导致这些异常的原因吗? 我应该尝试一种不那么激进的重试政策吗?

任何帮助表示感谢。

我还注意到我获得了高百分比(> 70%)的缓存未命中率,并且当系统挣扎时,cpu利用率很高(> 80%)。

1 个答案:

答案 0 :(得分:0)

好吧,我一直无法找到我所看到的错误的任何原因,但我已经“修复”了这个问题,等等!

在查看最近几天处理统计数据时,很明显高CPU使用率与云服务有“问题”相对应。我已将服务更改为使用两个中型实例而不是两个小实例。

这似乎解决了这个问题,而且服务运行得非常愉快,CPU使用率低,内存使用率低,没有例外。

因此,虽然仍然没有发现问题的根源,但我似乎已经通过为服务提供更大的环境来克服它们。

- 晚新闻!我注意到今天早上从大约06:30开始,cpu的使用率开始攀升,以及服务处理所需的时间。错误开始出现,我不得不在10:30重新启动服务,以恢复“正常”状态。此外,重新启动服务时,OnRoleRun进程在45分钟后再次开始运行之前会抛出大量DataCacheExceptions。

现在一切似乎都很好了,我会监控接下来的几小时/几天......

似乎没有解释,远程桌面到实例在事件日志中没有显示异常,其他日志记录没有显示应用程序问题,所以我仍然难倒。