如何加速在AZURE上部署的.NET MVC站点?

时间:2015-03-05 11:10:35

标签: asp.net asp.net-mvc performance azure azure-sql-database

当然,我希望达到最佳性能。 我能做些什么呢?

  1. 使用Bundles for CSS& JS文件?确定。
  2. 我使用什么样的存储空间?现在它的SQL数据库。 但站点和数据库放置在不同的区域。 DB的大小不会太大-1 gb - 就足够了。而且 - 如何减少查询时间。现在 - 它太长了。
  3. 我应该打开"永远打开"我网站的功能?
  4. 还有什么吗?是否读过任何文章?
  5. 提前致谢。

2 个答案:

答案 0 :(得分:1)

您可以做的只有这么多优化 - 如果您真的想要“最高性能”,那么您将在C / C ++中将您的网站重写为kext或驱动程序服务,并将所有数据存储在{{1}中或者可能将整个网站编码为一系列数百万个独立的高频电子逻辑门,这些门都被刻入集成电路并直接连接到网络接口......

...现在我们用实际的术语;)你的帖子在那里有主要的性能问题罪魁祸首:你的数据库和网络服务器彼此不是本地的,这是一个问题:每个网页用户请求都是触发数据库请求,如果数据库超过几毫秒,那么它将导致问题(MSSQL Server也有一个相当繁琐的网络协议,这大大增加了延迟效应)。

理想情况下,从请求发送到响应到达的总页面生成时间应小于100毫秒,然后用户才会注意到您的网站“缓慢”。考虑到客户端的Web服务器可能是30ms或更长,这意味着您有大约50-60ms来生成页面,这意味着您的数据库服务器必须在您的Web服务器的0-3ms内。甚至5ms的延迟也太大了,因为像3-4数据库查询一样无害的事情将导致至少memcached的延迟 - 数据库读取时间可能从0ms(如果数据在内存中)或最多到20ms,如果它是在慢盘驱动器上,或者甚至更慢,取决于服务器负载 - 这就是你如何轻松找到一个“简单”的网站,只需要在服务器上生成超过100毫秒,更不用说发送到客户端。

简而言之:将您的数据库移动到与您的网络服务器相同的本地网络上的服务器,以减少延迟。

答案 1 :(得分:1)

在您的条件下启动的最直接和最简单的方法是将数据库和站点移动到同一数据中心。 稍后您可以考虑:

  • 使用您的代码
  • 添加(Azure Redis)缓存
  • 对您的网站进行负载均衡(如果收费足够)
  • 围绕压缩/捆绑/最小化代码的一切。

希望它有所帮助,