Linux 服务器下dotnetcore 程序监控

1、验证绑定的实例的 CPU 亲和性

复制代码
ps -p $(pgrep -d, dotnet) -L -o pid,tid,psr,comm
复制代码
2、验证绑定的实例的 GC/线程池使用情况
复制代码
for pid in $(pgrep -d " " dotnet); do
    echo "=== 查看dotnet进程PID $pid 的GC/线程池使用情况 ==="
    dotnet-counters monitor --process-id $pid --counters System.Runtime --refresh-interval 1 --timeout 5
done

3、查看对应.NET8应用实例的线程堆栈(找应用逻辑卡死的地方)

复制代码
# 用dotnet-dump查看对应.NET8应用实例的线程堆栈
dotnet-dump collect --process-id <对应.NET8应用实例的PID>
dotnet-dump analyze <生成的dump文件路径>
# 或者用dotnet-trace查看对应.NET8应用实例的线程堆栈(生产环境推荐!不用dump大文件!)
dotnet-trace collect --process-id <对应.NET8应用实例的PID> --duration 00:00:30 --output <生成的trace文件路径>
dotnet-trace convert <生成的trace文件路径> --format speedscope
相关推荐
路溪非溪2 小时前
Linux中Netlink简介和使用总结
linux·网络·arm开发·驱动开发
程序猿编码2 小时前
Linux内核级隐身术:进程与端口隐藏技术剖析
linux·运维·服务器·linux内核·进程
jiayi_19992 小时前
[bug] unsupported GNU version! gcc versions later than 12 are not supported!
服务器·bug·gnu
萧行之3 小时前
Ubuntu Node.js 版本管理工具 n 完整安装与使用教程
linux·前端
乐维_lwops3 小时前
什么是可扩展、可接入的智能运维体?
运维·开放平台·运维智能体
Ares-Wang10 小时前
Linux》》systemd 、service、systemctl daemon-reload、systemctl restart docker
linux·运维·docker
安审若无12 小时前
运维知识框架
运维·服务器
阿拉斯攀登12 小时前
从入门到实战:CMake 与 Android JNI/NDK 开发全解析
android·linux·c++·yolo·cmake