前言

简单介绍一下在排查问题。献给初学者。

该文的前置篇:

https://www.cnblogs.com/aoximin/p/16838657.html

正文

什么是linux系统

linux 是基于名为procfs的特殊文件系统。

linux 有一句著名的话,一切皆文件。

通常,数据会在启动时映射到名为 /proc 的装入点。 proc 文件系统充当内核中内部数据结构的接口。 可以使用该文件获取有关系统的信息,并在运行时更改某些内核参数 (sysctl) 。

进程被视为 /proc/ 目录下的文件。 此目录在此处定义为特殊目录:

“此特殊目录保存有关 Linux 系统的所有详细信息,包括其内核、进程和配置参数。

举个例子,比如你要查看内存,你可以使用free。

然后你还可以使用:

cat /proc/meminfo

比如查看cpu信息:

可以看到我的cpu 是i5 7500,好多年的电脑了,当年也是很好的。

如果要查看进程信息,这里随便找一个进程。

然后进40422这个目录看一下:

这里面就是这个进程运行数据:

比如cmdline:

有比如说查看这个进程的环境变量:

最基础的排查方式

查看内存和cpu。

windows 上有任务管理器,那么linux 也有,就是top。

如果发现这些信息不能满足你,可以按f,去选择自己想要的信息。

通过空格,选择自己需要看的信息。

然后使用man top 查看用法。

top -p xxx 查看某一个进程,然后有个比较好用的是 top -Hp xxx

这个是查看线程模式:

可以观察到线程的运行情况。

如果运行太多,可以使用U来查看某个用户的进程。

top -u root

如果查看正在使用cpu的进程可以使用-i,比如 top -i -u root 这样查看。

再介绍一个htop,这个是装13模式。

这逼格是不是加大了,命令和top一样,不过颜色标明出来了。

注意这一行:

快捷方式做一些常规操作。

核心转储

什么是核心转储,核心转储就是进程内存的快照。

下面是 Linux 系统的行为与核心转储文件生成相关的一些关键方面:

默认情况下,当进程意外终止时,将生成核心转储文件。

核心转储文件名为“core”,在当前工作目录或目录中 /var/lib/systemd/coredump 创建。

尽管默认行为是操作系统生成核心转储文件,但可以覆盖 /proc/sys/kernel/core_pattern 此设置,将核心转储文件输出直接传送到另一个应用程序。

那么生成了核心转储服务,有没有管理的,那肯定是有的,比如apport

捕获核心转储和调试器:

有多种工具可用于捕获核心转储文件,例如 gcore、gdb 和用于分析核心转储文件的多个工具,例如 objdump、 kdump、 gdb 和 lldb。

但是,在使用这些工具尝试执行 .NET 调试时,你会遇到一些重大困难:

与在 Windows 上为 WinDbg 调试器设置符号的过程相比,配置可能很困难。

核心转储文件很大,因为这些工具不知道在 .NET Core 进程中使用了哪个内存区域,并且无法将内存信息剪裁为仅需要什么。

转储文件不可移植。 必须分析生成这些文件的 Linux 计算机上的转储文件。 如果要分析不同 Linux 计算机上的转储文件,则需要执行额外的步骤来为调试会话配置主机。

微软官方推荐:

Lldb 是用于分析 .NET Core 转储的建议工具。 .NET SDK 包括用于正确配置 lldb 的有用工具。 但是,必须安装至少版本 3.9 才能对 .NET Core 执行此类调试分析。

若要安装 lldb 3.9 或更高版本,请使用包管理器 (,例如: sudo apt install lldb) 。

但是微软有自己的,比如:

createdump

dotnet-dump

dotnet-gcdump

dotnet-symbol

Procdump

这几个是需要掌握的,因为内容比较多,所以下一节吧。

下一节介绍:

Lldb

createdump

dotnet-dump

dotnet-gcdump

dotnet-symbol

Procdump

重新整理 .net core 实践篇 ———— linux上排查问题 [外篇]的更多相关文章

  1. 重新整理 .net core 实践篇 ———— linux上排查问题实用工具 [外篇]

    前言 介绍下面几个工具: Lldb createdump dotnet-dump dotnet-gcdump dotnet-symbol Procdump 该文的前置篇为: https://www.c ...

  2. 重新整理 .net core 实践篇 ———— linux上性能排查 [外篇]

    前言 该文的前置篇为: https://www.cnblogs.com/aoximin/p/16839830.html 本文介绍性能排查. 正文 上一节是出现错误了,如何去排查具体问题. 这一节介绍一 ...

  3. 重新整理 .net core 实践篇 ———— linux 上线篇 [外篇]

    前言 简单整理一个linux 简单上线. 这个是该系列的外篇,该系列继续更新.献给刚学的人. 正文 安装实例 dotnet new webapp -n AspNetCoreDemo -o firstw ...

  4. 重新整理 .net core 实践篇————配置应用[一]

    前言 本来想整理到<<重新整理.net core 计1400篇>>里面去,但是后来一想,整理 .net core 实践篇 是偏于实践,故而分开. 因为是重新整理,那么就从配置开 ...

  5. 重新整理 .net core 实践篇————依赖注入应用[二]

    前言 这里介绍一下.net core的依赖注入框架,其中其代码原理在我的另一个整理<<重新整理 1400篇>>中已经写了,故而专门整理应用这一块. 以下只是个人整理,如有问题, ...

  6. Node.js~在linux上的部署~外网不能访问node.js网站的解决方法

    这是上一篇node.js部署到linux上的后续文章,当我们安装完node.js之后,建立了sailsjs的网站,然后在外面电脑上无法访问这个网站,这个问题我们如何去解决? 解决思路: 查看linux ...

  7. 重新整理 .net core 实践篇————依赖注入应用之援军[四]

    前言 介绍第三方依赖注入框架Autofac,看看为我们解决什么问题. 下面介绍4个点: 命名注册 属性注册 aop 注入 子容器命名 正文 为什么我们需要使用第三方框架?第三方框架为我们做了什么?第三 ...

  8. 重新整理 .net core 实践篇—————服务与配置之间[十一二]

    前言 前面基本介绍了,官方对于asp .net core 设计配置和设计服务的框架的一些思路.看下服务和配置之间是如何联系的吧. 正文 服务: public interface ISelfServic ...

  9. 重新整理 .net core 实践篇—————中间件[十九]

    前言 简单介绍一下.net core的中间件. 正文 官方文档已经给出了中间件的概念图: 和其密切相关的是下面这两个东西: IApplicationBuilder 和 RequestDelegate( ...

随机推荐

  1. 大数据Hadoop入门教程 | (二)Linux

    使用finalShell可以提供文件目录图形化 完整Linux命令整理参考大佬博客:Linux常见文件管理命令 - Mr_Walker - 博客园 Linux文件系统基础知识 Linux文件系统概念 ...

  2. 关于virtio_net网卡命名的小问题

    最近看了一个小问题,涉及到一致性网络设备命名(Consistent Network Device Naming),在此记录一下. 系统是 4.18.0-240.el8.x86_64,centos 8. ...

  3. 延时任务-基于redis zset的完整实现

    所谓的延时任务给大家举个例子:你买了一张火车票,必须在30分钟之内付款,否则该订单被自动取消.订单30分钟不付款自动取消,这个任务就是一个延时任务. 我之前已经写过2篇关于延时任务的文章: <完 ...

  4. linux --stdin 管道 标准输入重定向

    linux --stdin 标准输入重定向 --stdin This option is used to indicate that passwd should read the new passwo ...

  5. 详解GaussDB(DWS) 资源监控

    摘要:本文主要着重介绍资源池资源监控以及用户资源监控. 本文分享自华为云社区<GaussDB(DWS)资源监控之用户.队列资源监控>,作者: 一只菜菜鸟. GaussDB(DWS)资源监控 ...

  6. Linux之Samba服务器搭建

    一,samba的基本概念 SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务. ...

  7. KingbaseES V8R6 维护管理案例之---Kstudio在CentOS 7启动故障

    ​ 案例说明: 在CentOS 7上安装KingbaseES V8R6C006数据库后,启动Kstudio图形界面启动失败,gtk动态库加载失败,安装gtk相关动态库后,问题解决. 适用版本: Kin ...

  8. KingbaseES 两表关联Update的两种写法与性能

    熟悉oracle 的人都知道,对于两表的关联更新,其执行计划主要有 Filter 和 Outer Join 两种方式.对于大批量数据的update,Join方式明显是更优的选择.KingbaseES ...

  9. KingbaseES 数据库Windows环境下注册数据库服务

    关键字: KingbaseES.Java.Register.服务注册 一.安装前准备 1.1 软件环境要求 金仓数据库管理系统KingbaseES V8.0支持微软Windows 7.Windows ...

  10. .NET 纯原生实现 Cron 定时任务执行,未依赖第三方组件 (Timer 优化版)

    在上个月写过一篇 .NET 纯原生实现 Cron 定时任务执行,未依赖第三方组件 的文章,当时 CronSchedule 的实现是使用了,每个服务都独立进入到一个 while 循环中,进行定期扫描是否 ...