zoukankan      html  css  js  c++  java
  • 通过dotnetdump分析生产环境docker容器部署的应用问题

    首先找到对应的docker id并exec进去,然后执行命令并更新apt包+下载procps和wget用于等下拉取dotnet-dump和查看线程

    sed -i -e "s@deb.debian.org@mirrors.163.com@g" -e "s@security.debian.org@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
  • 相关阅读:
    Number Sequence
    不容易系列之(3)—— LELE的RPG难题
    又见回文
    统计元音
    数列
    regular expression
    野兽男孩
    GameStd
    boost and qt compile.
    kde4 + compiz只有两个桌面的问题
  • 原文地址:https://www.cnblogs.com/gmmy/p/15797427.html
Copyright © 2011-2022 走看看