如何为Azure App Service指定进程创建完整内存转储
为Azure App Service指定进程创建内存转储的操作指引
你能正常访问Kudu的前提下,以下三种方式都可以稳定生成指定进程的完整内存转储,不用纠结侧边栏找不到入口的问题:
方法1:直接访问Kudu进程管理器生成(首选)
- 登录Kudu站点后,不用在侧边栏找功能入口,直接在浏览器地址栏的Kudu根地址后拼接
/ProcessExplorer,回车进入进程管理页面 - 在进程列表里核对进程名、PID、内存占用值,定位到你需要调试的目标进程
- 右键点击目标进程,在弹出菜单中依次选择 Download Memory Dump > Full Dump,等待转储生成完成后会自动触发浏览器下载
提示:如果你的App Service配置为64位运行,生成的转储也为64位,请使用对应位数的WinDbg/Visual Studio打开调试,否则会出现符号加载失败、堆栈解析异常的问题。
方法2:通过Kudu命令行手动抓dump(适合界面操作无响应的场景)
- 进入Kudu站点的 Debug console,选择CMD或PowerShell控制台均可
- 先执行以下命令查询所有运行中进程的信息,确认目标进程PID:
Get-Process | Sort-Object WorkingSet -Descending | Select-Object Id, ProcessName, WorkingSet - 确认目标PID后,执行以下命令生成完整内存转储,将命令中的
<Target_PID>替换为你查到的实际进程ID:d:\devtools\dumpsharp\dumpsharp.exe -p <Target_PID> -o d:\home\LogFiles\custom_dump.dmp - 命令执行完成后,转储文件会保存在
d:\home\LogFiles路径下,直接通过Kudu的文件浏览器导航到对应目录即可下载。
方法3:Azure门户诊断工具兜底方案
如果Kudu页面操作异常,可以直接用门户内置能力生成:
- 进入Azure门户对应App Service实例页,左侧菜单打开诊断并解决问题
- 搜索栏输入「收集内存转储」进入对应工具页
- 按照向导选择目标实例、目标进程,转储类型选择完整内存转储,点击开始收集,等待执行完成后直接在当前页面下载转储文件即可。
注意事项
- 生成完整内存转储时会占用实例的CPU、磁盘IO资源,转储文件大小和目标进程实际内存占用基本一致,请确保实例磁盘预留至少1.5倍进程内存的剩余空间,尽量在业务低峰期操作
- 如果目标进程为32位运行,不要使用64位抓取工具生成转储,否则会出现转储损坏、无法正常调试的问题
内容的提问来源于stack exchange,提问作者mantasa
相关产品推荐
相关产品推荐

