Linux問題故障定位

2022-07-16 17:27:11 字數 2057 閱讀 6387

針對應用程式,通常關注的是核心cpu排程器功能和效能。

執行緒的狀態分析主要是分析執行緒的時間用在什麼地方,而執行緒狀態的分類一般分為:

a.on-cpu:執行中,執行中的時間通常又分為使用者態時間user和系統態時間sys。

b.off-cpu:等待下一輪上cpu,或者等待i/o、鎖、換頁等等,其狀態可以細分為可執行、匿名換頁、睡眠、鎖、空閒等狀態。

如果大量時間花在cpu上,對cpu的剖析能夠迅速解釋原因;如果系統時間大量處於off-cpu狀態,定位問題就會費時很多。

//

檢視系統cpu使用情況

top//

檢視所有cpu核資訊

mpstat -p all 1

//檢視cpu使用情況以及平均負載

vmstat 1

//程序cpu的統計資訊

pidstat -u 1 -p pid

//跟蹤程序內部函式級cpu使用情況

perf top -p pid -e cpu-clock

記憶體出現問題可能不只是影響效能,而是影響服務或者引起其他問題

//

檢視系統記憶體使用情況

free -m

//虛擬記憶體統計資訊

vmstat 1

//檢視系統記憶體情況

top//

1s採集週期,獲取記憶體的統計資訊

pidstat -p pid -r 1

//檢視程序的記憶體映像資訊

pmap -d pid

//檢測程式記憶體問題

valgrind --tool=memcheck --leak-check=full --log-file=./log.txt ./程式名

磁碟通常是計算機最慢的子系統,也是最容易出現效能瓶頸的地方,因為磁碟離 cpu 距離最遠而且 cpu 訪問磁碟要涉及到機械操作,比如轉軸、尋軌等。

//

檢視系統io資訊

iotop

//統計io詳細資訊

iostat -d -x -k 1

10//

檢視程序級io的資訊

pidstat -d 1 -p pid

//檢視系統io的請求,比如可以在發現系統io異常時,可以使用該命令進行調查,就能指定到底是什麼原因導致的io異常

perf record -e block:block_rq_issue -ag

^cperf report

網路的監測是所有 linux 子系統裡面最複雜的,有太多的因素在裡面,比如:延遲、阻塞、衝突、丟包等

//

顯示網路統計資訊

netstat -s

//顯示當前udp連線狀況

netstat -nu

//顯示udp埠號的使用情況

netstat -apu

//統計機器中網路連線各個狀態個數

netstat -a | awk '

/^tcp/ end '//

顯示tcp連線

ss -t -a

//顯示sockets摘要資訊

ss -s

//顯示所有udp sockets

ss -u -a

//tcp,etcp狀態

sar -n tcp,etcp 1

//檢視網路io

sar -n dev 1

//抓包以包為單位進行輸出

tcpdump -i eth1 host 192.168.1.1 and port 80

//抓包以流為單位顯示資料內容

tcpflow -cp host 192.168.1.1

//

檢視負載情況

uptime

topvmstat

//統計系統呼叫耗時情況

strace -c -p pid

//跟蹤指定的系統操作例如epoll_wait

strace -t -e epoll_wait -p pid

//檢視核心日誌資訊

dmesg

linux 定位系統異常負載故障思路

定位系統異常負載故障思路 top看程序的id號 舉例php cgi 經過上圖,我們發現,有兩個php cgi程序的cpu資源佔用率過高,pid分別是10059,11570,這一般都是程式優化不夠造成,如何定位問題的php程式位置?2.找出程序所使用的檔案 proc 檔案系統儲存在記憶體中,主要儲存系...

Linux網路問題定位工具

分類 network 本文將linux中使用到的網路問題定位工具進行了初步彙總。linux nc命令 netcat是網路工具中的 瑞士軍刀 短小精悍 功能實用,簡單 可靠。可通過tcp或udp協議傳輸讀寫資料。也是乙個網路應用debug分析器,因為它可以根據需要建立各種不同型別的網路連線。tcpdu...

故障定位 利用gdb給Linux動態庫打熱補丁

一 前言 對linux下elf檔案格式的分析是linux攻防的基礎。掌握elf檔案的格式分析,不僅僅是學習別人如何攻擊軟體的目的,更多的我們應該利用知識幫助解決實際問題。例如linux有些故障很難復現,如果出了問題,重新換軟體版本,很可能就復現不了了。於是在出現故障時,不重啟應用 程序 的前提下,給...