asp.net - 如何加速 AZURE 上部署的 .NET MVC 站点?

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

我当然想达到最大的性能。 我能为它做什么?

  1. 对 CSS 和 JS 文件使用 bundle 吗?好的。
  2. 我应该使用什么样的存储?现在是 SQL 数据库。 但site和DB放在不同的区域。 DB 的大小不会太大 -1 GB - 就足够了。以及 - 如何减少查询时间。现在——太长了。
  3. 我应该为我的网站启用“始终开启”功能吗?
  4. 还有其他事吗?有没有读过的文章?

提前致谢。

最佳答案

您能做的优化只有这么多 - 如果您真的想要“最大性能”,那么您可以用 C/C++ 重写您的站点作为 kext 或驱动程序服务,并将所有数据存储在 memcached 中,或者将您的整个网站编码为一系列数百万个单独的高频电子逻辑门,全部 eclipse 刻到集成电路中并直接连接到网络接口(interface)...

...现在我们是在现实的条件下;)您的帖子有主要的性能问题罪魁祸首:您的数据库和网络服务器彼此不是本地的,这是一个问题:用户请求的每个网页都会发生触发数据库请求,如果数据库距离超过几毫秒,就会导致问题(MSSQL Server 也有一个相当繁琐的网络协议(protocol),这会大大增加延迟效应)。

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

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

关于asp.net - 如何加速 AZURE 上部署的 .NET MVC 站点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28876470/

相关文章:

jquery - 如何插入jQuery代码? Uncaught ReferenceError : $ is not defined in view razor code

R的switch语句不是一种特殊形式,因此它很慢吗?

c# - 如何连接带空格的字符串?

asp.net - MVC Valums Ajax Uploader - IE 不会在 request.InputStream 中发送流

c# - 我应该以编程方式内联所有 CSS 文件以优化页面加载速度吗?

c# - EF 代码首先无法将类型转换为 int

mysql - 数据库索引优化咨询

javascript - 有没有一种运行时更有效的方法来迭代这个数组? (JavaScript)

c# - 我该如何重构这段代码?

asp.net - 使用 Asp.Net 主题时如何强制浏览器重新加载缓存的 CSS 文件?