This post has been republished via RSS; it originally appeared at: New blog articles in Microsoft Tech Community.
Most of the people have already know that the memory dump can help us solve a lot of problems. And there are several different ways to capture memory dumps in the App service.
But there are still some people may have confusion why we have so many ways to capture dump over the app service? And if the dump we captured can help us solve the problem?
In this article, I will start from the basic concepts.
What is the memory dump?
A memory dump is a static memory snapshot of a system or an application process at the time when it was captured. The file has an extension of .dmp.
When to collect the memory dump?
Since the data in the machine memory is changing very fast, and the dump file is like a photograph of one specific time, the dump is useful only if it was captured when the issue was happening.
Why the dump helps us?
A dump file has the threads that were executing, and their callstacks, loaded modules, Memory heap, etc. By analysis that information, we can know what was happening during the issue time and get the conclusion of the cause.
What kind of problem it can help to solve?
It generally can help to solve problems, such as crash, hang, high memory, high CPU and slowness, etc.
As mentioned above, since the dump can only be useful when it captured in time, so we have different ways to trigger different task in the app service to capture it, below are the common ways we are having:
- High CPU: proactive CPU monitor https://azure.github.io/AppService/2019/10/07/Mitigate-your-CPU-problems-before-they-even-happen.html
- Crash: Crash monitor https://azure.github.io/AppService/2020/08/11/Crash-Monitoring-Feature-in-Azure-App-Service.html
- High Memory\Hang\slowness: Auto Heal https://azure-advice.com/2020/11/19/using-auto-heal-to-capture-memory-dumps-for-slow-requests/
But in some cases, the above ways cannot help us. I will explain in the later articles.