如何在Azure存储帐户上找到我的Hot LRS写入操作的来源?

时间:2019-04-23 10:00:59

标签: azure azure-storage billing

我们正在使用Azure存储帐户存储一些文件,这些文件应由我们的应用程序根据用户需求下载。

即使不应该执行写操作(至少我没有想到),但在结算期的几天内,我们仍超出了所包含的写操作(请参见图片)。

Excerpt from our usage, showing that we exceeded 10K hot write operations after just a bunch of days into the billing period

关于价格,它仍在限制范围内,但我仍然想知道这是否正常以及如何分析此事。除了我们正在使用的存储

  • 功能和
  • 应用服务(移动应用)

但是它们都不应该引起那么多写操作。我已经检查了我们函数的日志,最近没有一个访问队列或Blob的函数处于活动状态。有些功能会不时地运行,但每隔几分钟只能运行一次,而这些功能根本无法访问存储。

我不知道这是否相关,但是在我们的Blob存储中有一种定期进入(请参见下图)。周期约为1小时,但每5分钟有100 kB的基线。

Metrics showing ingress for blobs and queues.

进一步分析存储帐户的指标,我发现Blob每小时有1.90k个事务,而队列有1.3k每小时的事务流,这在我看来是非常特殊的。 (请注意,该图的分辨率为1小时,而前者的分辨率为5分钟)

Metrics showing many ingress operations on blobs and queues.

我还能做些其他什么来分析写操作的来源吗?这有点令我困扰,因为它似乎不应该像那样。

3 个答案:

答案 0 :(得分:2)

我遇到了完全相同的问题;在启用Storage Analytics并检查$logs容器之后,我发现许多日志条目指示在对我的Azure Functions的每个请求中,这些写操作针对以下容器对象进行:

https://[function-name].blob.core.windows.net:443/azure-webjobs-hosts/locks/linkfunctions/host?comp=lease

在我的Azure Functions代码中,我没有明确地这样写任何容器或文件,但是我配置了以下两个应用程序设置:

  • AzureWebJobsDashboard
  • AzureWebJobsStorage

所以我在Azure的支持报价中填写了以下问题:

  1. 这些应用程序设置是否触发了写操作?一世 相信,但是请您确认。
  2. 如果删除这些应用程序设置,写入操作会停止吗?
  3. 您能否概括性地描述这些操作在什么情况下发生(例如,日志记录?资源锁定,其他?)

我分别从Azure支持团队获得了以下答案:

  1. 是的,你是对的。根据日志信息,我们可以看到“ https://[function-name].blob.core.windows.net:443/azure-webjobs-hosts/locks/linkfunctions/host?comp=lease”。 此azure-webjobs-hosts文件夹与功能应用程序相关联,并且在创建功能应用程序的同时默认创建。功能应用程序运行时,会将这些日志记录在使用AzureWebJobsStorage配置的存储帐户中。
  2. 无法停止写操作,因为这些操作会将必要的日志记录到Azure Functions运行时所使用的存储帐户中。请不要删除应用程序设置AzureWebJobsStorage。 Azure函数运行库将此存储帐户连接字符串用于除HTTP触发函数以外的所有函数。删除此应用程序设置将导致您的功能应用程序无法启动。顺便说一句,您可以删除AzureWebJobsDashboard,它将停止Monitor而不是上面的操作。
  3. 这些操作是为了记录功能应用程序的运行时日志。当我们的后端分配实例以运行功能app时,将发生这些操作。

答案 1 :(得分:1)

查找有关存储使用情况的最佳位置是利用Storage Analytics,尤其是Storage Analytics Logging

在同一存储帐户中有一个名为$logs的特殊Blob容器,其中将包含有关对该存储帐户执行的每个操作的详细信息。您可以查看该Blob容器中的Blob并找到信息。

如果您的存储帐户中没有看到此Blob容器,则需要在存储帐户中启用存储分析。但是考虑到您可以看到指标数据,我想它已经启用。

关于这些写操作的来源,您是否为“功能和应用服务”启用了诊断功能?这些将诊断日志写入Blob存储。另外,存储分析也正在写入同一帐户,这也将导致这些写入操作。

答案 2 :(得分:0)

就我而言,我有一个Azure App Insight,它在功能和应用程序服务的每分钟存储量上进行了1万笔交易,甚至认为其中只有很少的https请求。我不确定是什么触发了它们,但是一旦删除了应用洞察力,一切都会变得正常。

相关问题