重新整理 .net core 實踐篇 ———— linux上排查問題 [外篇]

前言簡單介紹一下在排查問題 。獻給初學者 。
該文的前置篇:
https://www.cnblogs.com/aoximin/p/16838657.html
正文什么是linux系統linux 是基于名為procfs的特殊文件系統 。
linux 有一句著名的話,一切皆文件 。
通常,數據會在啟動時映射到名為 /proc 的裝入點 。proc 文件系統充當內核中內部數據結構的接口 ??梢允褂迷撐募@取有關系統的信息,并在運行時更改某些內核參數 (sysctl)。
進程被視為 /proc/ 目錄下的文件 。此目錄在此處定義為特殊目錄:
“此特殊目錄保存有關 Linux 系統的所有詳細信息,包括其內核、進程和配置參數 。
舉個例子,比如你要查看內存,你可以使用free 。
然后你還可以使用:
cat /proc/meminfo

重新整理 .net core 實踐篇 ———— linux上排查問題 [外篇]

文章插圖
比如查看cpu信息:
重新整理 .net core 實踐篇 ———— linux上排查問題 [外篇]

文章插圖
可以看到我的cpu 是i5 7500,好多年的電腦了,當年也是很好的 。
如果要查看進程信息,這里隨便找一個進程 。
重新整理 .net core 實踐篇 ———— linux上排查問題 [外篇]

文章插圖
然后進40422這個目錄看一下:
重新整理 .net core 實踐篇 ———— linux上排查問題 [外篇]

文章插圖
【重新整理 .net core 實踐篇 ———— linux上排查問題 [外篇]】這里面就是這個進程運行數據:
比如cmdline:
重新整理 .net core 實踐篇 ———— linux上排查問題 [外篇]

文章插圖
有比如說查看這個進程的環境變量:
重新整理 .net core 實踐篇 ———— linux上排查問題 [外篇]

文章插圖
最基礎的排查方式查看內存和cpu 。
windows 上有任務管理器,那么linux 也有,就是top 。
重新整理 .net core 實踐篇 ———— linux上排查問題 [外篇]

文章插圖
如果發現這些信息不能滿足你 , 可以按f , 去選擇自己想要的信息 。
重新整理 .net core 實踐篇 ———— linux上排查問題 [外篇]

文章插圖
通過空格,選擇自己需要看的信息 。
然后使用man top 查看用法 。
top -p xxx 查看某一個進程,然后有個比較好用的是 top -Hp xxx
這個是查看線程模式:
重新整理 .net core 實踐篇 ———— linux上排查問題 [外篇]

文章插圖
可以觀察到線程的運行情況 。
如果運行太多,可以使用U來查看某個用戶的進程 。
top -u root如果查看正在使用cpu的進程可以使用-i,比如 top -i -u root 這樣查看 。
再介紹一個htop,這個是裝13模式 。
重新整理 .net core 實踐篇 ———— linux上排查問題 [外篇]

文章插圖
這逼格是不是加大了,命令和top一樣,不過顏色標明出來了 。
注意這一行:
重新整理 .net core 實踐篇 ———— linux上排查問題 [外篇]

文章插圖
快捷方式做一些常規操作 。
核心轉儲什么是核心轉儲 , 核心轉儲就是進程內存的快照 。
下面是 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)。

推薦閱讀