通過dotnet-dump分析生產環境docker容器部署的應用問題

首先找到對應的docker id並exec進去,然後執行命令並更新apt包+下載procps和wget用於等下拉取dotnet-dump和查看線程

sed -i -e "[email protected]@mirrors.163.com@g" -e "[email protected]@mirrors.163.com@g" /etc/apt/sources.list && apt-get update && apt-get -y install procps wget -y

用wget下載dump工具並添加執行權限

wget https://aka.ms/dotnet-dump/linux-x64 -o dotnet-dump
chmod +x dotnet-dump

執行top並查找有問題的線程ID

top -Hp 1

將線程ID轉換爲16進制並打印出來

printf '%x\n' xxx

開始導出dump並分析

./dotnet-dump collect -p 1 -o dump
./dotnet-dump analyze dump

打印所有dump的線程

clrthreads

將剛纔的16進制線程ID和OSID列對比,找到一致的行,第一列就是DBG就是線程ID了

設置當前要查看的線程,查看其線程棧

setthread xxx
clrstack

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章