我在 Azure 中有一个 Web 应用程序,每月大约有 10 万访问者,每个 session 的页面浏览量不到 2 次(纯 SEO 访问者)。
我刚刚研究了我们的 Azure 账单,惊讶地发现上个月我们3.41 TB
的数据被泄露。
太字节。
这完全没有意义。我们的平均页面大小小于 3mb(很多,但不是数学所说的 30mb)。实际上输出的总数据应该是:
3431000 (mb)/150000 (sessions) = 23mb pr session,这绝对是假的。 Pingdom 等服务的结果显示:
(Stack.Imgur 似乎已关闭 - 临时链接: http://prntscr.com/gvzoaz )
我的图表看起来像这样,而且它不是刚刚出现的东西。我已经有一段时间没有分析我们的账单了,所以这种情况很可能已经持续了一段时间:
(Stack.Imgur 似乎已关闭 - 临时链接: http://prntscr.com/gvzohm )
我们访问最多的页面是自动生成的 SEO 页面,该页面从具有 +3mio 记录的数据库中读取,但它经过了相当优化,而且我们的数据库也不是那么昂贵。主要挑战是数据输出,成本很高。
但是,我该如何进行测试呢?我从哪说起呢?
我的架构:
老实说,我相信我的所有资源都在同一个区域。这是我的主要使用 killer 的屏幕截图 - 我的应用程序和数据库:
应用程序:
数据库:
我的所有资源:
最佳答案
经过我在 Upwork 上找到的一位乌克兰开发者的大力帮助,我们终于解决了这个问题。
挑战位于我们的 robots.txt 中。
事实证明,我们的页面上有如此多的请求 - 我们有 3.6 个工厂地址页面 - 请求数量非常巨大。这就是为什么输出的数据如此之大。
我们现在已经解决了这个问题:
- 添加 robots.txt,禁止除 Google 和 Bing 之外的所有机器人
- 调整了网站站长工具中的 Google 抓取速度
- 将地址页面的站点地图更改频率从每月更改为每年,以避免重新抓取
我很高兴!
关于c# - 如何准确测量Azure Web应用程序中的 "data out"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46685122/