.NET GC 实时监控工具 dotnet gcmon 介绍
今天介紹一個(gè)新的診斷工具 dotnet-gcmon, 也是全局 .NET CLI 工具, 它可以監(jiān)控到 .NET 程序的 GC, 能獲取到的信息也很詳細(xì), 另外 maoni 大佬也是其中的開發(fā)者之一。
安裝 gcmon
和其他的 dotnet 診斷工具一樣, 你可以使用以下命令,進(jìn)行全局安裝
dotnet tool install -g dotnet-gcmon參數(shù)介紹
| 參數(shù) | 描述 |
| n | 進(jìn)程名, dotnet 應(yīng)用的進(jìn)程名 |
| p | 進(jìn)程ID, dotnet 應(yīng)用的 Process ID |
| m | 最小 GC 暫停持續(xù)時(shí)間(以毫秒為單位),可選 |
| c | 指定一個(gè) yaml 配置文件路徑, 可選 |
使用
使用非常簡(jiǎn)單, 我們需要指定被監(jiān)控的 dotnet 應(yīng)用的進(jìn)程名或者是進(jìn)程ID (PID), 這里也可以使用另外一個(gè)診斷工具 dotnet-trace, 安裝命令如下
dotnet tool install -g dotnet-trace然后運(yùn)行?dotnet trace ps?獲取所有的 dotnet 進(jìn)程
接下來(lái), 運(yùn)行?dotnet gcmon -p 21904, 開始監(jiān)控 dotnet 應(yīng)用, 診斷工具會(huì)輸出下面的信息
在診斷工具運(yùn)行的時(shí)候, 按下?s?鍵, 會(huì)輸出當(dāng)前 GC 的整體和每一代的狀態(tài)
另外還可以使用 yaml 配置文件, 靈活配置診斷工具輸出列,具體可以參考 github。
總結(jié)
dotnet gcmon 是一個(gè)小而實(shí)用的診斷工具, 并且還在迭代中, 在對(duì)于代碼無(wú)侵入的情況下, 排查問(wèn)題還是很方便的, 另外 .NET 現(xiàn)在已經(jīng)有近十個(gè)診斷工具了!
gcmon 的工作原理是什么呢? 其實(shí)主要是調(diào)用了 CLR 運(yùn)行時(shí)團(tuán)隊(duì)提供的一個(gè)診斷庫(kù),?Microsoft.Diagnostics.NETCore.Client, 這個(gè)庫(kù)功能就非常強(qiáng)大了, 各種運(yùn)行時(shí)信息都可以拿到, 當(dāng)然你也可以用它實(shí)現(xiàn)一個(gè)診斷工具, 這個(gè)庫(kù)是基于 EventPipe, IPC 等實(shí)現(xiàn)的, 還是很復(fù)雜的, 最后希望本文對(duì)您有用!
https://github.com/Maoni0/realmon
總結(jié)
以上是生活随笔為你收集整理的.NET GC 实时监控工具 dotnet gcmon 介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: github开源推荐:SuperSock
- 下一篇: 如何通过 Linq 将集合拆成多个块?