生产环境(基于docker)故障排除? 有感于博客园三番五次翻车

https://www.cnblogs.com/JulianHuang/archive/2019/08/19/11365593.html

  如题,有感于博客园最近多次翻车,感觉像胡子眉毛一把抓, 定位不了生产环境的问题。

抛开流程问题,思考在生产环境中如何做故障排除, 发现博客园里面这方面的文章比较少。

.

Net 本身是提供了相关工具帮助我们在生产中故障排除: https://docs.microsoft.com/en-us/dotnet/framework/tools/sos-dll-sos-debugging-extension

工具的思路是在生产环境中dump出进程快照文件,通过分析快照堆栈、线程信息、异常信息判断运行状态。

这个工具依赖的文件很多很杂,国外大牛已经针对 .NetCore制作了工具镜像

How to Use#

docker run --rm -it -v /stripe/upload/coredump:/tmp/coredump 6opuc/lldb-netcore

  • /stripe/upload/coredump - docker宿主机上崩溃进程的coredump文件路径

Usecases#

Analyze running container#

  1.找到需要分析的容器id (docker ps),例如: b5063ef5787c

  2.运行包含 createdump工具的容器(需要sys_admin,sys_ptrace特权), 如果运行的容器已经包含这个特权,可附加到运行的容器并在容器中执行createdump工具

docker run --rm -it --cap-add sys_admin --cap-add sys_ptrace --net=container:b5063ef5787c --pid=container:b5063ef5787c -v /tmp:/tmp 6opuc/lldb-netcore /bin/bash

  • b5063ef5787c - 待分析的容器id

  • /tmp  - 主机上临时目录,coredump 文件将会在此生成

  3. 找到待分析dotnet 进程PID

ps aux

    这个例子PID 是“7”

  4. 生成dotnet进程的 coredump文件,并退出容器

createdump -u -f  /tmp/coredump 7            # 7是dotnet 进程idexit

  5. 使用debugger打开coredump文件

docker run --rm -it -v /tmp/coredump:/tmp/coredump 6opuc/lldb-netcore

    example output:

(lldb) target create "/usr/bin/dotnet" --core "/tmp/coredump"
Core file '/tmp/coredump' (x86_64) was loaded.
(lldb) plugin load /coreclr/libsosplugin.so
(lldb) sos PrintException
There is no current managed exception on this thread
(lldb)

  6. 在lldb shell 继续探索

help        

  lldb使用方式可参考 https://docs.microsoft.com/en-us/dotnet/framework/tools/sos-dll-sos-debugging-extension

General Practices#

该DockerHub Repo还提供了基于docker 生产故障排除的常见用例:

  • Process hang with idle CPU
  • Process hang with high CPU usage
  • Process crash
  • Excessive memory usage

这个镜像对于基于容器的故障排除相当有用,不敢自称原创镜像;

分享给大家, 希望园友通过经历生产环境的故障排除,进阶为资深研发。

+  dotnet core调试docker下生成的dump文件

Windbg程序调试系列-索引篇

作者:JulianHuang

码甲拙见,如有问题请下方留言大胆斧正;码字+Visio制图,均为原创,看官请不吝好评+关注,  ~。。~

本文欢迎转载,请转载页面明显位置注明原作者及原文链接。

分类: Web后端(.Net)

转载于:https://www.cnblogs.com/jinanxiaolaohu/p/11410665.html

[转帖]生产环境(基于docker)故障排除? 有感于博客园三番五次翻车相关推荐

  1. 生产环境(基于docker)故障排除? 有感于博客园三番五次翻车

    前言 如题,有感于博客园最近多次翻车,感觉像胡子眉毛一把抓, 定位不了生产环境的问题. 抛开流程问题,思考在生产环境中如何做故障排除, 发现博客园里面这方面的文章比较少. .Net 本身是提供了sos ...

  2. 基于Docker容器的HEXO博客

    基于Docker容器的HEXO博客 介绍 hexo是一个基于Node.js 快速.简洁且高效的博客框架. Hexo 支持 GitHub Flavored Markdown 的所有功能,甚至可以整合 O ...

  3. python自动输入账号密码_Python如何基于selenium实现自动登录博客园

    这篇文章主要介绍了Python如何基于selenium实现自动登录博客园,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需要做的准备: 本文章是使用 ...

  4. python基础教程:Python如何基于selenium实现自动登录博客园

    这篇文章主要介绍了Python如何基于selenium实现自动登录博客园,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需要做的准备: 本文章是使用 ...

  5. 基于webmagic实现爬取博客园的所有精品文章

    最近有一些工作上的需要,需要接触到爬虫来爬取数据.之前有使用过Python实现一个很简单的爬虫Demo,这次由于公司使用的是Java爬虫,基于webmagic框架去实现的爬虫.于是就参考了资料自己学习 ...

  6. 三分钟搭建自己的专属博客(基于Docker solo搭建个人博客)

    我的博客演示:http://49.233.150.105/ 域名备案有些麻烦,所以暂时用ip访问 准备工作 服务器一台(必选),域名一个(可选) 1. Docker部署 不懂参考我这里的教程: lin ...

  7. centos java 集成环境搭建,CentOS上搭建Tomcat环境并配置服务自启动 - Sonnyb - 博客园...

    下载安装JDK 卸载原装的OpenJDK(如果有) # 查看是否安装Java java -version # 查看Java的安装包信息 rpm -qa | grep java # 卸载原装Java,为 ...

  8. 生产环境运行Docker的9个关键决策

    本文讲的是生产环境运行Docker的9个关键决策,[编者的话]生产环境运行Docker并没有想象的那么简单,如何实现稳定安全的部署和扩容? 又有哪些需要考虑的关键决策? 本文就此做了一些分析和阐述,赶 ...

  9. spring boot 与 iview 前后端分离架构之开发环境基于docker的部署的实现(三十六)

    spring boot 与 iview 前后端分离架构之开发环境基于docker的后端的部署的实现(三十六) 公众号 基于docker的后端的部署 安装mysql数据库 创建数据库 安装redis 安 ...

最新文章

  1. Centos服务器常用安装指南
  2. 新病毒仿熊猫烧香 利用 Vista系统漏洞疯狂传播
  3. 程序员的一个爬虫,把估值175亿的马蜂窝给捅了
  4. 一幅图看懂Python编程
  5. 创客更新装备 动态规划
  6. Servlet和HTTP请求协议-学习笔记01【Servlet_快速入门-生命周期方法、Servlet_3.0注解配置、IDEA与tomcat相关配置】
  7. 房天下数据爬取及简单数据分析
  8. notepad++以16进制查看文件
  9. CSS3边框图片、边框阴影、文本阴影
  10. hihocoder第237周:三等分带权树
  11. 基于Modbus TCP-IP协议的WEINVIEW HMI与PC通讯
  12. 怎么把一张暗的照片调亮_拍摄一张好照片有哪些步骤?看完这篇实操文章你就懂了...
  13. 【压缩感知OMP算法】OMP算法的Matlab版本
  14. GBK字库制作、字模数据读取、使用
  15. Java-Scala编程规范超精简
  16. 一个按键控制数码管的开和关_按键控制数码管显示
  17. mysql跨库查询语句mybatis_mybatis实现跨库多表查询
  18. 【Elasticsearch源码】 GET分析
  19. Proxmox Mail Gateway (PMG) 安装及简单设置
  20. 利用PPt画卷积神经网络

热门文章

  1. 对于LIMITE,Mysql优化器导致的有时候不走索引而是走全表查询
  2. 腾讯、阿里、百度、小米、360深藏不露的投资秘籍!
  3. 2004年11月11日
  4. elementUI el-table 行出现遮挡及多出横线问题
  5. 人员抽烟行为识别检测算法
  6. Do not use ‘new‘ for side effects
  7. 谈谈Oracle日志文件的INVALID状态(上)
  8. PyQT学习之Stacked Widget控件
  9. 清华梦的破碎——写给清华的退学申请 王垠
  10. 【季报分析】台积电:核心业务依旧强劲,营收再创新高