【Azure App Service】分享App Service for Window中自动抓取Memory DUMP的方法

简介: 本文介绍在Azure Windows App Service中,如何通过配置Auto-Heal功能自动捕获内存Dump:设置内存阈值(Private Bytes),触发条件为内存超限,动作选择“Collect a Memory Dump”,并绑定存储账户保存dump文件,便于快速定位内存泄漏根源。

问题描述

当应用部署到Azure App Service后,如果突然遇见应用内存上升的情况,如果想 第一时间的抓取Memory DUMP,以便于分析出内存占用到上限值的根源,有什么好的办法呢?

 

问题解答

如果是 Windows App Service,最简单的做法是开启 Auto-Heal:触发条件选内存上限,动作选 Collect a Memory Dump。进程私有内存超过阈值时,系统会自动抓 dump。

Auto-Heal provides you with an easy way to take an action when your app is having an unexpected behavior. The triggers and actions allow you to define various conditions based on request count, slow requests, memory limit on which you can take specific actions like restarting the process, logging an event, or starting another executable. Please note that these mitigations should only be considered a temporary workaround until you find the real cause for the issue causing the unexpected behavior.


具体的操作步骤如下:

  1. 打开 Azure Portal,进入目标 Web App。
  2. 依次点 Network → Troubleshoot → Auto-Heal。
  3. 打开 Custom Auto-Heal Rules(自定义自动修复规则)。
  4. Conditions(触发条件):选 Memory Limit,填内存阈值。这个值指的是单个实例上 w3wp 进程的 Private Bytes。
  5. Actions(动作):选 Custom Action → Collect a Memory Dump。
  • 可以选抓完 dump 后是否同时分析,或是否重启进程(Kill)。
  • 如果门户提示配置存储账户,就按提示绑定一个。dump 会写到那个存储账户里。
  1. Override when action executes(最短运行时间):建议设成 5–10 分钟,防止进程刚启动就反复触发。
  2. 点 Save。保存后站点会重启一次,规则才会生效。


操作步骤截图参考:

 

参考资料

Auto Healing Experience in App Service Diagnostics :https://azure.github.io/AppService/2018/09/10/Announcing-the-New-Auto-Healing-Experience-in-App-Service-Diagnostics.html

 


当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
4月前
|
人工智能 自然语言处理 API
【Azure AI Search】Index的字段使用默认Analyzer(standard.lucene) 和 en.microsoft 有什么不同?
Azure AI Search英文检索因词形差异(如brief/briefs)无法匹配,根源在于analyzer选择:默认standard.lucene不处理词形还原,而en.microsoft支持lemmatization,可将变体还原为基本形式。需通过新增字段并配置en.microsoft analyzer解决,兼顾检索质量与业务需求。
343 124
|
4月前
|
人工智能 自然语言处理 API
【Azure AI Search】 stopword 是什么,为什么它会影响搜索结果?
本文解析 Azure AI Search 中搜索 "in brief" 返回结果过多的问题,指出根源在于 analyzer 对停用词(如 "in")的处理差异:默认 `standard.lucene` 保留停用词导致泛匹配,而 `en.microsoft` 会过滤停用词,使结果更精准。关键在于根据业务语义选择合适 analyzer。
276 121
|
12月前
|
Java 开发工具
【Azure Storage Account】Java Code访问Storage Account File Share的上传和下载代码示例
本文介绍如何使用Java通过azure-storage-file-share SDK实现Azure文件共享的上传下载。包含依赖引入、客户端创建及完整示例代码,助你快速集成Azure File Share功能。
764 6
|
6月前
|
NoSQL 网络协议 Cloud Native
【Azure Redis】云原生环境下的 Redis 超时之谜:为什么 15 分钟后应用才恢复?
云原生中Redis短暂不可用后应用持续超时15分钟?问题不在Redis,而在Linux TCP默认重传机制(tcp_retries2=15)与长连接模型的错位。需三管齐下:调低内核重传次数、客户端显式配置超时与自动重连、应用层引入断路器与弹性重试。
370 20
|
6月前
|
人工智能 监控 网络协议
【App Service】常规排查 App Service 启动 Application Insights 无数据的步骤 (.NET版本)
本文详解Application Insights在Azure App Service中无日志数据的三大原因及排查方法:1)网络连通性(验证到AI端点的443端口访问);2)w3wp.exe进程是否成功加载AI模块;3)DLL冲突(检查并移除重复的Microsoft.ApplicationInsights等组件)。
285 10
|
6月前
|
网络协议 虚拟化 Docker
【Azure Developer】.NET Aspire 启动报错:listen tcp bind: An attempt was made to access a socket in a way forbidden by its access permissions
.NET Aspire在Windows启动时因Hyper-V端口保留机制,导致DCP代理无法绑定53209等端口(报错“访问被拒绝”)。虽端口未被占用,但已被系统保留。推荐方案:修改launchSettings.json,将服务端口改为7xxx等安全范围;或临时重启winnat服务、永久排除指定端口。
746 21
|
6月前
|
前端开发 应用服务中间件 Linux
【Azure App Service】PHP页面上传文件413错误的解决方案
在使用 Azure App Service(Linux + PHP) 部署 Web 应用时,如果上传文件大于1MB,就会遇到 HTTP 413(Request Entity Too Large) 错误。 # 问题解答 ### 一、HTTP 413 错误的本质含义 413 Request Entity Too Large 是标准 HTTP 状态码,表示: > 客户端提交的请求体(Request Body)大小超过了服务器当前允许的最大限制。 在 Azure App Service(Linux)环境中,这个错误并不一定来自前端网关(Frontend),而更常见的来源是 App...
1675 13
|
9月前
|
安全 API Windows
【Azure APIM】如何解决后端API服务配置自签名证书时APIM请求报错500:Error occured while calling backend service
本文介绍在Azure API管理(APIM)中使用自签名证书时,因CA证书不受信任导致后端HTTPS连接失败的问题及解决方案。通过分析错误日志和验证流程,指出需将根CA和中间CA证书分别上传至APIM的受信任证书库,并强调仅上传完整链PFX文件无效。最终按正确步骤上传CER格式的CA证书后,问题得以解决,实现安全通信。
295 4
|
23天前
|
Windows
【Azure Service Fabric 】节点扩展状态为 Not Ready 的恢复办法
Azure Service Fabric Windows节点卡在“Node configuration is in progress”状态,实为扩展未就绪(Not Ready),非正常进行中。本文详解通过停止服务、重命名运行时目录、重启安装服务及虚拟机,触发自动修复完成节点恢复的实操方案。
121 2