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

2023-11-25

我们使用 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.

我还能做些什么来分析写操作来自哪里吗?这让我有点困扰,因为它似乎不应该是这样的。


我也遇到过同样的问题;启用存储分析并检查后$logs我发现许多日志条目表明,在每次向我的 Azure Functions 发出请求时,这些写入操作都会针对以下容器对象进行:

https://[函数名称].blob.core.windows.net:443/azure-webjobs-hosts/locks/linkfunctions/host?comp=lease

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

  • AzureWeb作业仪表板
  • AzureWeb作业存储

因此,我在 Azure 中填写了一张支持票,其中包含以下问题:

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

我从Azure支持团队分别得到了以下答复:

  1. 是的你是对的。根据日志信息,我们可以看到“https://[函数名称].blob.core.windows.net:443/azure-webjobs-hosts/locks/linkfunctions/host?comp=lease”. This azure-webjobs-hosts文件夹与 Function App 关联,默认情况下创建该文件夹以及创建 Function App。当函数应用程序运行时,它会将这些日志记录在配置为的存储帐户中AzureWebJobsStorage.
  2. You 无法停止写操作因为这些操作将必要的日志记录到 Azure Functions 运行时使用的存储帐户。请不要删除应用程序设置AzureWebJobsStorage。 Azure Functions 运行时将此存储帐户连接字符串用于除 HTTP 触发函数之外的所有函数。删除此应用程序设置将导致您的函数应用程序无法启动。顺便说一句,你可以删除AzureWebJobsDashboard它会停止Monitor而不是上面的操作。
  3. 这些操作是记录Function App的运行日志。当我们的后端分配用于运行函数应用程序的实例时,将发生这些操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何找到 Azure 存储帐户上的热 LRS 写入操作的来源? 的相关文章

随机推荐

  • 如何从输入类型文件多个中删除特定文件?

    我正在使用多个输入类型文件来更新一些图片 上传之前 页面会显示每张图片的缩影 我想为每张图片添加一个删除链接 当用户单击时 图片就会消失 文件也会从输入中删除 我尝试使用下面的代码 HTML
  • 理解封装和抽象的简单方法

    学习 OOP 概念特别有兴趣深入理解抽象和封装 已经查看了下面的内容 抽象VS信息隐藏VS封装 抽象和封装之间的区别 我发现如果没有真实且简单的示例类 代码片段 很难理解这些概念 我的一位同事说抽象只不过是创造抽象 类和用范围保护其成员变量
  • 在 Windows Phone 8.1 上获取 CivicAddress

    我正在尝试从 Windows Phone 8 1 中的地理位置获取 CivicAddress 我尝试使用以下代码 Get Current Location var geolocator new Geolocator geolocator D
  • 属性的使用... INotifyPropertyChanged

    这只是我在学习属性时想到的事情 而且我太多地使用了 INotifyPropertyChanged 这只是一个想法 我想听听一些关于它的意见 我知道这需要在编译器上做一些工作 而不是在消费者方面 由于 INotifyPropertyChang
  • 如何在 MySQL 中存储 varbinary?

    只是一个简单的问题 在下面提到的两个选项中 如何存储到varbinaryMySQL 中的列 public key 67498930589635764678356756719 or public key 6749893058963576467
  • 如何为 android MediaController 创建自定义 UI

    我想为我的视频播放器自定义 MediaController 中的控件 我想更换播放按钮的图像 更改皮肤 更改颜色等 有已知的方法可以做到这一点吗 Thanks 我在最近的一个项目中遇到了同样的问题 最终基于库存 MediaControlle
  • “ascii”编解码器无法对位置 9 中的字符 u'\u2013' 进行编码:序号不在范围内(128)

    我正在尝试导入 cvs 但出现此错误 UnicodeEncodeError at brokers csv ascii codec can t encode character u u2013 in position 9 ordinal no
  • 将多个本机 DLL 合并为一个 DLL

    我有很多小的 DLL 我想将它们制作成一个大的 呃 DLL 如在这里建议 我可以通过合并我的项目来做到这一点 但我想要一种侵入性较小的方式 多个DLL可以合并为一个单元吗 快速搜索发现这个线程声称这是不可能的 还有人知道吗 请注意 我谈论的
  • 关闭Form时出现异常(线程+调用)

    我刚刚开始学习c 中的线程和方法调用 但我遇到了一个我找不到解决方案的问题 我制作了一个基本的 C 表单程序 它通过启动线程并调用委托来不断更新和显示数字 在 Form1 load 上启动新线程 private void Form1 Loa
  • Spring security - 如何提及基于表单的身份验证和基本身份验证

    是否可以使用名称空间配置在 Spring security 中提及基于表单的身份验证和基本身份验证 而不覆盖其他身份验证 这样应用程序就可以为基于浏览器的请求和远程客户端提供服务 The grimesjm 的回应是对的 但是 如果您使用 S
  • Java中栈帧的内容

    从Java虚拟机实现中可以明显看出 http docs oracle com javase specs jvms se7 html index html 该堆栈帧存在于堆上 用于存储方法的运行时数据 但是java中栈帧的内容是什么以及栈帧是
  • 让div占据100%的身体高度,减去固定高度的页眉和页脚[重复]

    这个问题在这里已经有答案了 根据我的研究 这似乎是一个绝对经典的 CSS 问题 但我找不到明确的答案 所以 StackOverflow 就是这样 如何设置内容 div 占据正文高度的 100 减去固定高度页眉和页脚所占据的高度
  • 在 C# 中使用 LINQ 从名称值列表中获取 4 个元素的组

    我想循环遍历这个名称值对列表 并将它们分成 4 个一组 数据会是这样的 value1 1 value2 1 value3 1 value4 1 value1 2 value2 2 value3 2 value4 2 它会将其分组为 1 个列
  • 仅使用 css 换行(如

    是否可以在纯CSS中 即不添加额外的html标签 进行换行 例如 br 我想要在之后换行 h4 元素 但不在之前 HTML li Text text text text text h4 Sub header h4 Text text tex
  • 具体来说,VMMap 如何知道给定的内存区域是线程堆栈?

    我一直在使用 Mark Russinovich 的 VMMap 来为我正在分析的进程映射虚拟内存 使用 VirtualQueryEx 我可以遍历外部进程的空间并获取有关进程地址空间内的内存区域的信息 当然 这些区域与 VMMap 匹配 但
  • std::function 可以用来存储带有可变参数的函数吗[重复]

    这个问题在这里已经有答案了 我有一个在应用程序中传递的结构 其中包含一堆回调函数 typedef struct std function
  • 从 pyenv-virtualenv 切换到 pipelinev 时保持相同的共享 virtualenv

    我开始看pipenv看起来还不错 我唯一担心的是 我的大部分项目都涉及numpy scipy和其他一些不那么小的图书馆 目前管理我的项目的方式 I have pyenv and pyenv virtualenv安装 我有一些 目前是 4 个
  • 选择/取消选择所有按钮以进行闪亮的变量选择

    我有这样的语句 可以让我获得有关变量的基本描述性统计数据 checkboxGroupInput show vars Columns in diamonds to show names input data selected names in
  • 如何将模型从视图传递到局部视图?

    我有一个观点是not强类型 然而 在这个视图中 我有一个强类型的部分视图 如何将模型传递给这个强类型视图 我尝试过类似的东西 public ActionResult Test MyData new Data MyData One 1 ret
  • 如何找到 Azure 存储帐户上的热 LRS 写入操作的来源?

    我们使用 Azure 存储帐户来存储我们的应用程序应根据用户需求下载的一些文件 尽管不应该有写入操作 至少我能想到没有 但在计费周期的几天后 我们就超出了包含的写入操作 见图 就价格而言 还在限制范围内 但我还是想知道这是否正常 以及如何分