c# - 如何准确测量Azure Web应用程序中的 "data out"?

标签 c# .net performance azure azure-web-app-service

我在 Azure 中有一个 Web 应用程序,每月大约有 10 万访问者,每个 session 的页面浏览量不到 2 次(纯 SEO 访问者)。

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

太字节。

这完全没有意义。我们的平均页面大小小于 3mb(很多,但不是数学所说的 30mb)。实际上输出的总数据应该是:

3431000 (mb)/150000 (sessions) = 23mb pr session,这绝对是假的。 Pingdom 等服务的结果显示:

result from Pingdom

(Stack.Imgur 似乎已关闭 - 临时链接: http://prntscr.com/gvzoaz )

我的图表看起来像这样,而且它不是刚刚出现的东西。我已经有一段时间没有分析我们的账单了,所以这种情况很可能已经持续了一段时间:

Azure data out

(Stack.Imgur 似乎已关闭 - 临时链接: http://prntscr.com/gvzohm )

我们访问最多的页面是自动生成的 SEO 页面,该页面从具有 +3mio 记录的数据库中读取,但它经过了相当优化,而且我们的数据库也不是那么昂贵。主要挑战是数据输出,成本很高。

但是,我该如何进行测试呢?我从哪说起呢?

我的架构:

老实说,我相信我的所有资源都在同一个区域。这是我的主要使用 killer 的屏幕截图 - 我的应用程序和数据库:

应用程序:

enter image description here

enter image description here

数据库:

enter image description here

我的所有资源:

enter image description here

最佳答案

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

挑战位于我们的 robots.txt 中。

事实证明,我们的页面上有如此多的请求 - 我们有 3.6 个工厂地址页面 - 请求数量非常巨大。这就是为什么输出的数据如此之大。

我们现在已经解决了这个问题:

  • 添加 robots.txt,禁止除 Google 和 Bing 之外的所有机器人
  • 调整了网站站长工具中的 Google 抓取速度
  • 将地址页面的站点地图更改频率从每月更改为每年,以避免重新抓取

我很高兴!

关于c# - 如何准确测量Azure Web应用程序中的 "data out"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46685122/

相关文章:

c# - 如何从基类中找到子类名?

c# - 在 .Net 中改进 String.Insert?

java - 什么更有效率 : Class object or Object[] (object array)?

c# - 如何让 backgroundworker 在 WPF 应用程序中工作

c# - 在 Visual Studio 中显示属性值的属性

c# - ListBoxItem 中的复杂 UI

python - 为什么 Python 的数值计算速度这么慢?

ios - 调用 alloc init 时 UIImagePickerController 真的很慢

c# - Umbraco - GetMedia 未返回正确的 url

c# - NodaTime 中的 OffsetTime