调整我部署到Azure的MVC3应用程序

时间:2011-05-22 17:33:54

标签: asp.net-mvc-3 azure azure-storage

我刚刚部署了一个使用Table Storage到Windows Azure的MVC3应用程序。性能很慢,我不确定是什么问题。我正在使用firebug,它报告在从少于20行的表中查找数据时,涉及一些非常简单的基于键的表查找的页面等待大约2秒。

有人可以建议一些我应该检查的事情。例如,部署时是否以调试模式部署?我可以用来监视性能的其他事情以及检查事情进展缓慢的原因。人们通常用什么来检查表现。

对不起,我的问题不是很具体,但这是我第一次投入生产,我现在想要得到一些关于要调查的事项的提示。

Maricel

2 个答案:

答案 0 :(得分:1)

这对于桌面存储来说听起来很慢。

尝试/检查的一些可能的事情:

  • 您可以使用本地调试计算实例调试应用程序,但使用真正的azure存储密钥 - 如果这样做,那么性能如何?
  • 您是否可以检查代码以确认您对Azure存储进行了多少次呼叫?
  • 你能否找出导致问题的原因 - 尤其是你可以隔离会员资格或会话存储而不是让你的特定行回来吗?
  • 您可以调试打印一些关于Azure存储的个别调用时间的跟踪吗?
  • http://www.microsoft.com/windowsazure/support/status/servicedashboard.aspx报告有任何问题吗? (目前我没有看到任何内容)
  • 您的存储和计算服务是否位于同一数据中心? (即使他们不是我期望比你说的更好的表现)
  • 您是否可以启用上传到Azure存储的iis日志? - 然后您可以检查IIS报告的http呼叫的时间。

希望其中一些帮助...

答案 1 :(得分:1)

建议:

  • 远程进入实例和监视器 通过Perfmon表现。用它, 你可以看到问题是否与CPU有关 利用率,IO或其他任何东西
  • 你是如何阅读桌面存储的?你是在阅读很多行而只处理20行?或者整个表有20行?
  • 如果请求发送到存储时CPU利用率会上升?如果是这样,这可能是因为Azure正在从表存储中序列化对象。这些大物件吗?快速提示,请确保让您的代码知道您从存储中读取的对象类型,这样就无需弄清楚。很多cpu时间通常用于序列化,因为您的代码可能不知道它正在读取的对象的类型。查看上下文对象上的ResolveType属性,让您的代码知道它正在处理的对象的类型

HTH