如何精确测量Azure Web应用程序中的“数据输出”?

10

我在Azure上有一个Web应用程序,每月大约有10万个访问者,每个会话少于2个页面视图(仅纯SEO访问者)。

我刚刚研究了我们的Azure账单,惊讶地发现上个月我们传输了3.41 TB 的数据。

是3.41千兆字节。

这根本没有任何意义。我们的平均页面大小小于3mb(很多,但不是数学计算的30mb)。总数据输出应该实际上是:

3431000(mb)/ 150000(会话)= 23mb每个会话,这是绝对虚假的。像Pingdom这样的服务结果显示:

从Pingdom得到的结果

(似乎Stack.Imgur已经宕机-临时链接:http://prntscr.com/gvzoaz

我的图表看起来像这样,这不是一时冲动。我已经有一段时间没有分析我们的账单了,所以这可能已经持续了一段时间:

Azure数据输出

(似乎Stack.Imgur已经宕机-临时链接:http://prntscr.com/gvzohm

我们访问最多的页面是一个自动生成的SEO页面,该页面从带有+3百万条记录的数据库中读取信息,但它经过了优化,而且我们的数据库也不太昂贵。主要挑战是数据输出,这很费钱。

但是,我该如何测试这个问题?我从哪里开始?

我的架构:

我坚信我所有的资源都在同一个区域。这是我的主要使用杀手-我的应用程序和数据库的屏幕截图:

应用程序:

输入图片描述

输入图片描述

数据库:

输入图片描述

我所有的资源:

输入图片描述


1
你的 Web 应用程序是否部署在与其使用的其他服务(数据库、存储、缓存等)相同的区域? - David Makogon
@DavidMakogon - 如果我们将 Web 应用程序部署在 A 区域,而我们的数据库或其他资源在 B 区域,那么我们是否需要支付数据传输费用? - Randy Minder
@LarsHoldgaard - 这个能帮到你吗:https://learn.microsoft.com/en-us/azure/billing/billing-download-azure-invoice-daily-usage-date - Randy Minder
@RandyMinder 不是的,它只是表明我每天使用了很多钱 :D - Lars Holdgaard
1
任何不属于 Azure 区域内部的内容都需要收费。在 Azure 区域之间传输数据也需要收费。听起来你的架构跨越了数据中心,这是一个常见的原因。将你的 Azure 资源移动到同一个数据中心或调整你的架构,仅需一次分发数据,这样你在处理请求时就不会跨越数据中心了。 - Murray Foxcroft
显示剩余12条评论
2个回答

1

在Upwork上找到的一位乌克兰开发者的帮助下,我们终于解决了这个问题。

挑战出现在我们的robots.txt文件中。

事实证明,我们的页面收到了太多请求 - 我们有360万地址页面 - 所以请求量非常大。这就是为什么输出的数据如此之大。

我们现在通过以下方式解决了这个问题:

  • 添加了一个robots.txt文件,只允许Google和Bing的机器人
  • 在Webmaster工具中调整了Google爬行速度
  • 将地址页面的sitemap从每月更改频率调整为每年一次,以避免重新爬行

我很高兴!


0

请遵循了解 Microsoft Azure 账单中给出的指导。 从订阅级别的角度审查账单。

找出是否将出站流量发送/请求到其他地区的 Azure 服务,或者大部分请求来自网站访问者。还要验证 Web 应用程序的备份面板以及任何其他定期运行的备份。

审查性能监控或性能测试。其他地区的任何测试是否负责更大的出站流量?

找出出站流量是否在营业时间内跟随站点负载。如果没有,请深入挖掘。 找出 SEO 访问者是否触发任何下载,如果是,请相应调整链接。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接