2012-10-02 61 views
3

我们正在将我们的服务器迁移到Windows Azure,我们希望利用Windows Azure共享缓存。我们已经编写了一个缓存提供程序,因此我们可以将其打开和关闭(如果需要,可以切换到运行时缓存),但是我们发现缓存比运行时缓存大约慢了1000倍。为什么Windows Azure共享缓存如此缓慢?

例如,返回从运行缓存网站对象是 时间总计0.0053 其中Azure的共享缓存是 时间总计73.6638,在某些情况下,总时间439.3367

不要误会我的意思,我希望有是一个小网络滞后,但这是愚蠢的?它完全无法使用?

对象很小,缓存的总大小为0.8mb,所以Website对象很小。

有没有人有任何建议?我是否应该使用缓存预览方法,我已经看到它是半专用的?如果它不能像这样,他们肯定不会有这个共享的吗?

我已经看到关于在网络缓存之上工作的本地缓存,但当缓存在本地重建时仍会出现延迟?

任何人都可以提供任何建议吗?

下列条件得到满足

我们正在与最新版本的Azure中的DLL

我们正在与一个网站,是在同一个数据中心,在Azure缓存

测试工作

SQL Azure与实例位于同一个数据中心,因此数据检索不是问题

我是唯一访问此网站的人,因此我没有相信并发性是一个问题

+0

的提供者是Azure的供应商。这只是一种在Azure和运行时缓存之间快速切换的机制。我们有客户无法访问Azure缓存,因此我们通过配置设置来选择性地打开和关闭它。 –

+0

对不起,我想你误会了。我正在使用Azure共享缓存。在这个例子中,我没有使用Blob存储或表存储,而是使用它们的AppFabric版本。我不知道这是否有帮助? –

+0

谢谢,我不认为我会诚实地接受任何事情。现在我已经设法为缓存设置了两个专用实例。令我烦恼的是,我在当前配置的两台机器上安装了memcache,并且我编写了一个类来实现AppFabric,因为他们有可用的服务,看起来它只是垃圾! 他们有一个半专用的缓存Web角色,但是特定于Web工作者和角色设置,我正在使用虚拟机,无法找到连接到它的文档!与科技合作的乐趣仍然处于预览状态。 无论如何,Chris –

回答

0

对于您遇到的问题表示歉意。 Windows Azure共享缓存先前已发布,并且正在生产中运行。只要您部署在与您配置的缓存相同的数据中心中,它就会为您提供良好的延迟。什么是你的拓扑结构,缓存在哪里以及你从哪里打开它?

就预览缓存而言,它会为您提供更好的延迟和对缓存的更多控制,因为您是运行缓存的缓存。由于您的应用程序是为memcache编写的,因此您可能也有兴趣使用我们的memcache垫片。

你可以阅读有关协议支持等步骤在这里:“我用的虚拟机并连接到它无法找到文件”

http://msdn.microsoft.com/en-us/library/windowsazure/hh914167.aspx

关于你在那里想做什么?

+0

Hi @Ankit的所有限制之后开发的,感谢您的回复。缓存与我运行的机器位于同一区域,但响应时间太长。就虚拟机问题而言,我根据说明启动了Azure缓存预览设置,并尝试在我的web.config中使用以下代码。 ' <跟踪sinkType = “DiagnosticSink” TRACELEVEL = “错误”/> <自动发现的IsEnabled = “真” 标识符= “WebRole1”/> ' 这不起作用,因为它无法找到Azure缓存角色? –

+0

就我的拓扑而言,有两台虚拟机在内部点击缓存。我确实在本地尝试过,但我可以接受该设置会有大量延迟。我也想使用通知,无论如何我都需要更专门的设置。我还在研究Redis,因为我仍然没有获得我想要的吞吐量。我们目前使用RuntimeCache并希望它能够分发,并且我愿意接受很小的延迟,但延迟时间似乎仍然很大。这可能是我们需要重新访问一些代码并将单个项目存储在缓存中而不是对象的情况。 –

0

“”

您是否勾选了标记角色属性中的启用缓存?客户失败的原因是什么(在堆栈中)?

关于延迟时间,什么样的价值观,你看到在专用高速缓存,它很容易设置,这将是犯罪不试试:)

存储较小的值总是从视图缓存点有加,不只节省传输和存储开销,而且还节省了序列化和反序列化成本。您是否考虑过在专用缓存中使用本地缓存?如果延迟是你的主要痛苦,那么通常没有任何东西能击败本地缓存

如果你想memcache的情况下,这也可能是值得考虑的:

http://blogs.msdn.com/b/silverlining/archive/2012/10/09/using-memcache-to-access-a-windows-azure-dedicated-cache.aspx