【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))

简介: 【应用服务 App Service】快速获取DUMP文件(App Service for Windows(.NET/.NET Core))

问题情形

当应用在Azure 应用服务App Service中运行时,有时候出现CPU,Memory很高,但是没有明显的5XX错误和异常日志,有时就是有异常但是也不能明确的指出具体的代码错误。当面临这样的情形是,有效的排查办法就是在问题重现的时候抓取DUMP文件,可以通过DUMP文件分析出是否有线程死锁,或查看时那些请求导致的死锁问题。也可以定位到相关的自定义代码类文件。非常助于下一步的查找问题。

抓取DUMP文件

1) 利用App Service自带Kudu的工具获取DUMP文件

  • 登录进当前应用服务的kudu站点,入口URL为:https://<yoursitename>.scm.chinacloudsites.cn/
  • 选择Process Explorer找到您需要抓取的进程,如w3wp.exe
  • 右键[Full Dump]即可,抓取后DUMP文件会自动下载到本地。

2) 对于.NET/.NET Core应用,使用procdump命令抓取指定的进程DUMP文件

  • 登录Kudu站点, 入口URL为:https://<yoursitename>.scm.chinacloudsites.cn/
  • 在Process Explorer中找到需要抓取的进程号,如 10524
  • 回到DebugConsole页,使用如下procdump命令,抓取5秒钟,抓取三次。
D:\home\LogFiles> D:\devtools\sysinternals\procdump -accepteula -ma 10524(PID)  -s 5 -n 3


执行结果如:

Kudu Remote Execution Console
Type 'exit' then hit 'enter' to get a new CMD process.
Type 'cls' to clear the console
Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.
D:\home>D:\devtools\sysinternals\procdump -accepteula -ma 7040   -s 5 -n 3
ProcDump v9.0 - Sysinternals process dump utility
Copyright (C) 2009-2017 Mark Russinovich and Andrew Richards
Sysinternals - www.sysinternals.com
Process:               dotnet.exe (7040)
Process image:         D:\Program Files (x86)\dotnet\dotnet.exe
CPU threshold:         n/a
Performance counter:   n/a
Commit threshold:      n/a
Threshold seconds:     5
Hung window check:     Disabled
Log debug strings:     Disabled
Exception monitor:     Disabled
Exception filter:      [Includes]
                       *
                       [Excludes]
Terminate monitor:     Disabled
Cloning type:          Disabled
Concurrent limit:      n/a
Avoid outage:          n/a
Number of dumps:       3
Dump folder:           D:\home\
Dump filename/mask:    PROCESSNAME_YYMMDD_HHMMSS
Queue to WER:          Disabled
Kill after dump:       Disabled
Press Ctrl-C to end monitoring without terminating the process.
[13:47:38] Timed:
[13:47:38] Dump 1 initiated: D:\home\dotnet.exe_200827_134738.dmp
[13:47:47] Dump 1 writing: Estimated dump file size is 199 MB.
[13:47:54] Dump 1 complete: 199 MB written in 16.6 seconds
[13:48:00] Timed:
[13:48:00] Dump 2 initiated: D:\home\dotnet.exe_200827_134800.dmp
[13:48:08] Dump 2 writing: Estimated dump file size is 199 MB.
[13:48:13] Dump 2 complete: 199 MB written in 12.8 seconds
[13:48:19] Timed:
[13:48:19] Dump 3 initiated: D:\home\dotnet.exe_200827_134819.dmp
[13:48:26] Dump 3 writing: Estimated dump file size is 200 MB.
[13:48:30] Dump 3 complete: 200 MB written in 11.2 seconds
[13:48:31] Dump count reached.
D:\home>

3) 对于JAVA的站点,则需要在包含JSTACK 或JMAP的JDK版本中抓取,如对于应用运行环境中没有,则需要先修改java container的版本。如:zulu8.17.0.3-jdk8.0.102-win_x64

  • 登录Kudu站点, 入口URL为:https://<yoursitename>.scm.chinacloudsites.cn/
  • 在Process Explorer中找到需要抓取的进程号,如 5252
  • 回到DebugConsole页,使用如下jstack / jmap,抓取5252的dump文件,并保存在threaddump1文件中
"D:\Program Files\Java\zulu8.17.0.3-jdk8.0.102-win_x64\bin"\jstack -F 5252 >D:/home/site/threaddump1.txt
"D:\Program Files\Java\zulu8.17.0.3-jdk8.0.102-win_x64\bin"\jmap -F -J-d64 -heap 5252> D:/home/site/threaddump1.txt


如何分析DUMP文件

可以先使用DebugDiag对文件进行初步的分析,它已集成一些内置的规则,所以无需编写windbg命令,当分析完成之后,会生成分析报告。在报告中,可以知道当前线程的情况,异常情况,及trace stack。

如果需要更多的分析,则需要考虑使用windbg工具,这需要复杂的命令及对dump的分析有非常深厚的要求。

DebugDiag下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=58210

Windbg下载地址:https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools

相关文章
|
11天前
|
安全
【Azure App Service】App service无法使用的情况分析
App Service集成子网后,如果子网网段中的剩余IP地址非常少的情况下,会在App Service实例升级时( 先加入新实例,然后在移除老实例 )。新加入的实例不能被分配到正确的内网IP地址,无法成功的访问内网资源。 解决方法就是为App Service增加子网地址, 最少需要/26 子网网段地址。
|
20天前
|
开发框架 .NET Windows
【App Service】在App Service中配置Virtual applications and directories,访问目录中的静态文件报错404
【App Service】在App Service中配置Virtual applications and directories,访问目录中的静态文件报错404
|
20天前
|
安全 网络安全 Windows
【Azure App Service】遇见az命令访问HTTPS App Service 时遇见SSL证书问题,暂时跳过证书检查的办法
【Azure App Service】遇见az命令访问HTTPS App Service 时遇见SSL证书问题,暂时跳过证书检查的办法
【Azure App Service】遇见az命令访问HTTPS App Service 时遇见SSL证书问题,暂时跳过证书检查的办法
|
20天前
|
安全 前端开发 网络安全
【Azure App Service】访问App Service应用报错 SSL: WRONG_VERSION_NUMBER
【Azure App Service】访问App Service应用报错 SSL: WRONG_VERSION_NUMBER
|
20天前
|
开发框架 JavaScript 前端开发
【App Service】解决 .NET Profiler 报告打开后无数据加载的问题
【App Service】解决 .NET Profiler 报告打开后无数据加载的问题
|
13天前
|
Web App开发 Java 视频直播
FFmpeg开发笔记(四十九)助您在毕业设计中脱颖而出的几个流行APP
对于软件、计算机等专业的毕业生,毕业设计需实现实用软件或APP。新颖的设计应结合最新技术,如5G时代的音视频技术。示例包括: 1. **短视频分享APP**: 集成FFmpeg实现视频剪辑功能,如添加字幕、转场特效等。 2. **电商购物APP**: 具备直播带货功能,使用RTMP/SRT协议支持流畅直播体验。 3. **同城生活APP**: 引入WebRTC技术实现可信的视频通话功能。这些应用不仅实用,还能展示开发者紧跟技术潮流的能力。
36 4
FFmpeg开发笔记(四十九)助您在毕业设计中脱颖而出的几个流行APP
|
7天前
|
移动开发 小程序 JavaScript
uni-app开发微信小程序
本文详细介绍如何使用 uni-app 开发微信小程序,涵盖需求分析、架构思路及实施方案。主要功能包括用户登录、商品列表展示、商品详情、购物车及订单管理。技术栈采用 uni-app、uView UI 和 RESTful API。文章通过具体示例代码展示了从初始化项目、配置全局样式到实现各页面组件及 API 接口的全过程,并提供了完整的文件结构和配置文件示例。此外,还介绍了微信授权登录及后端接口模拟方法,确保项目的稳定性和安全性。通过本教程,读者可快速掌握使用 uni-app 开发微信小程序的方法。
25 3
|
28天前
|
Web App开发 Android开发
FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo
实时数据传输在互联网中至关重要,不仅支持即时通讯如QQ、微信的文字与图片传输,还包括音视频通信。一对一通信常采用WebRTC技术,如《Android Studio开发实战》中的App集成示例;而一对多的在线直播则需部署独立的流媒体服务器,使用如SRT等协议。SRT因其优越的直播质量正逐渐成为主流。本文档概述了SRT协议的使用,包括通过OBS Studio和SRT Streamer进行SRT直播推流的方法,并展示了推流与拉流的成功实例。更多细节参见《FFmpeg开发实战》一书。
37 1
FFmpeg开发笔记(四十六)利用SRT协议构建手机APP的直播Demo
|
1月前
|
Web App开发 5G Linux
FFmpeg开发笔记(四十四)毕业设计可做的几个拉满颜值的音视频APP
一年一度的毕业季来临,计算机专业的毕业设计尤为重要,不仅关乎学业评价还积累实战经验。选择紧跟5G技术趋势的音视频APP作为课题极具吸引力。这里推荐三类应用:一是融合WebRTC技术实现视频通话的即时通信APP;二是具备在线直播功能的短视频分享平台,涉及RTMP/SRT等直播技术;三是具有自定义动画特效及卡拉OK歌词字幕功能的视频剪辑工具。这些项目不仅技术含量高,也符合市场需求,是毕业设计的理想选择。
60 6
FFmpeg开发笔记(四十四)毕业设计可做的几个拉满颜值的音视频APP
|
1月前
|
编解码 Java Android开发
FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流
​SRT Streamer是一个安卓手机端的开源SRT协议直播推流框架,可用于RTMP直播和SRT直播。SRT Streamer支持的视频编码包括H264、H265等等,支持的音频编码包括AAC、OPUS等等,可谓功能强大的APP直播框架。另一款APP直播框架RTMP Streamer支持RTMP直播和RTSP直播,不支持SRT协议的直播。而本文讲述的SRT Streamer支持RTMP直播和SRT直播,不支持RTSP协议的直播。有关RTMP Streamer的说明参见之前的文章《使用RTMP Streamer开启APP直播推流》,下面介绍如何使用SRT Streamer开启手机直播。
51 4
FFmpeg开发笔记(四十五)使用SRT Streamer开启APP直播推流