介紹
dotnet-dump 是 .NET Core 官方工具之一,用於生成和分析 .NET Core 進程的轉儲文件(dump file)。它可以幫助開發人員在應用程序發生故障或性能問題時進行故障排查和診斷。
Linux 系統上的軟件包的工具
- RedHat系列使用(Centos)
yum
- Debian系列使用
apt
dotnet-dump安裝
先安裝dotnet-sdk
- 將 Microsoft 的官方包存儲庫配置文件安裝到 CentOS 7 系統中
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
- 安裝運行時
sudo yum install dotnet-sdk-7.0
- 查看當前版本-是否安裝成功
dotnet --version
安裝dotnet-dump
安裝最新的即可,我的代碼是asp.core3.1 也可以高版本排查
dotnet tool install --global dotnet-dump
查看當前版本-是否安裝成功
dotnet-dump --version
生成轉儲文件(內存文件)
dotnet-dump collect -p 10232
分析轉儲文件
dotnet-dump analyze core_20231222_201626
分析SOS命令
- 找到內存比較大的類型,通過查看內存佔用大小和對象數量
dumpheap -stat
默認從小到大,直接拉到最下面,看最大的對象
- 然後分析類型具體對象
umpheap -mt 命令,您可以快速查找指定類型的對象,瞭解其在堆上的分佈情況和內存佔用情況。這對於定位內存泄漏、查找內存使用問題等非常有用。
dumpheap 7f9d28ec8b68
- 然後找出的應用根(目的是找出在哪裏被引用了)
gcroot 7f9a14da0448