记一次asp.net core 线上崩溃解决总结
2024-08-31 10:43:04
1.首先要先准备好环境,安装lldb 工具 要安装3.9版本的,因为每个版本对应dnc版本不一样,3.9的支持2.2 版本,然后确定分析的机器里dnc 版本和线上的生产环境是否一致,自己安装比较费劲,可以使用一些已经安装好的docker镜像来进行分析更简单一点
2.在生产环境生成dump文件可以使用procdump 工具或者直接使用dotnet 自带的工具
/usr/share/dotnet/shared/Microsoft.NETCore.App/2.1.1/createdump 9364(线程id)
3.首先使用linux 命令查询占用cpu高的线程
top -H 命令查询
4.在本地开始分析
1>lldb 加载文件
lldb dotnet \
-c /opt/dump\_file/mvcdumpmindump \
-o "plugin load /usr/share/dotnet/shared/Microsoft.NETCore.App/2.1.1/libsosplugin.so"
2>设置dotent core 运行环境 setclrpath /usr/share/dotnet/shared/Microsoft.NETCore.App/2.1.1/命令
3>clrthreads -live 列出所有线程
4>thread select 11(线程编号)
5>clrstack -p 查看代码堆栈信息
最后定位到了一段代码,其中有while循环,代码如下:
这一段代码猛一看好像没有问题,也会出现死循环的情况,那么情况是怎么产生的呢?经过和同事一起慢慢的重现出来了,因为有重复新闻id的产生造成了死循环,最终代码修好后问题解决!!
最新文章
- Javascript判断两个日期是否相等
- usb驱动开发24之接口驱动
- 双击导航栏自动滑动ListView到顶部
- poj 2378 (dijkstra)
- Codeforces Round #385 (Div. 2) A. Hongcow Learns the Cyclic Shift 水题
- JQuery 中 is(':visible') 解析及用法
- 简述负载均衡&;CDN技术
- Codeforces Round #360 (Div. 2) E. The Values You Can Make 01背包
- Android的自动对焦
- python 参议院文本预处理的一维数组的间隔空间
- CSS的z-index(分层)
- 处理IIS报“由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面”
- 一步一步学EF系列【6、IOC 之AutoFac】
- Hadoop中Hbase的体系结构
- lua中 table 元表中元方法的重构实现
- 【ASP.NET MVC 学习笔记】- 16 Model Binding(模型绑定)
- Web开发,浏览器通讯原理及流程那点事,你应该听说下
- python3与mysql交互
- centos中编译安装nginx+mysql +php(未完)
- Codeforces 1043F(容斥+dp)