前言简单介绍一下在排查问题 。献给初学者 。
该文的前置篇:
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
【重新整理 .net core 实践篇 ———— linux上排查问题 [外篇]】这个是查看线程模式:
文章插图
可以观察到线程的运行情况 。
如果运行太多 , 可以使用U来查看某个用户的进程 。
top -u root
如果查看正在使用cpu的进程可以使用-i , 比如 top -i -u root 这样查看 。再介绍一个htop , 这个是装13模式 。
文章插图
这逼格是不是加大了 , 命令和top一样 , 不过颜色标明出来了 。
注意这一行:
文章插图
快捷方式做一些常规操作 。
核心转储什么是核心转储 , 核心转储就是进程内存的快照 。
下面是 Linux 系统的行为与核心转储文件生成相关的一些关键方面:
默认情况下 , 当进程意外终止时 , 将生成核心转储文件 。
核心转储文件名为“core” , 在当前工作目录或目录中 /var/lib/systemd/coredump 创建 。
尽管默认行为是操作系统生成核心转储文件 , 但可以覆盖 /proc/sys/kernel/core_pattern 此设置 , 将核心转储文件输出直接传送到另一个应用程序 。
经验总结扩展阅读
- 转机行李要重新托运吗
- .NET API 接口数据传输加密最佳实践
- 重新整理 .net core 实践篇 ———— linux 上线篇 [外篇]
- .Net Core&RabbitMQ限制循环消费
- IQueryable和IEnumerable 快读《ASP.NET Core技术内幕与项目实战》EFCore2.5:集合查询原理揭秘
- .NET6打包部署到Windows Service
- Dapr实现.Net Grpc服务之间的发布和订阅,并采用WebApi类似的事件订阅方式
- 是什么让.NET7的Min和Max方法性能暴增了45倍?
- no one与nobody的用法是什么 相关句子整理
- 浏览器下载的文件怎么重新下载(在浏览器下载的文件怎么打开)