
-
- 排查順序
- 方法論
- 性能分析工具
- CPU分析思路
- 內存分析思路
- IO分析思路
- 網絡分析思路
- 基準測試工具
- 參考
排查順序
整體情況:-
top/htop/atop
命令查看進程/線程、CPU、內存使用情況,CPU使用情況; -
dstat 2
查看CPU、磁盤IO、網絡IO、換頁、中斷、切換,系統I/O狀態; -
vmstat 2
查看內存使用情況,內存狀態; -
iostat -d -x 2
查看所有磁盤的IO情況,系統I/O狀態; -
iotop
查看IO靠前的進程,系統的I/O狀態; -
perf top
查看占用CPU最多的函數,CPU使用情況; -
perf record -ag -- sleep 15;perf report
查看CPU事件占比,調用棧,CPU使用情況; -
sar -n DEV 2
查看網卡的吞吐,網卡狀態; -
/usr/share/bcc/tools/filetop -C
查看每個文件的讀寫情況,系統的I/O狀態; -
/usr/share/bcc/tools/opensnoop
顯示正在被打開的文件,系統的I/O狀態; -
mpstat -P ALL 1
單核CPU是否被打爆; -
ps aux --sort=-%cpu
按CPU使用率排序,找出CPU消耗最多進程; -
ps -eo pid,comm,rss | awk '{m=$3/1e6;s["*"]+=m;s[$2]+=m} END{for (n in s) printf"%10.3f GB %s\n",s[n],n}' | sort -nr | head -20
統計前20內存占用;
-
awk 'NF>3{s["*"]+=s[$1]=$3*$4/1e6} END{for (n in s) printf"%10.1f MB %s\n",s[n],n}' /proc/slabinfo | sort -nr | head -20
統計內核前20slab的占用;
-
pidstat 2 -p 進程號
查看可疑進程CPU使用率變化情況; -
pidstat -w -p 進程號 2
查看可疑進程的上下文切換情況; -
pidstat -d -p 進程號 2
查看可疑進程的IO情況; -
lsof -p 進程號
查看進程打開的文件; -
strace -f -T -tt -p 進程號
顯示進程發起的系統調用;
-
ethtool -S
查看網卡硬件情況; -
cat/proc/net/softnet_stat/ifconfig eth1
查看網卡驅動情況; -
netstat -nat|awk '{print awk $NF}'|sort|uniq -c|sort -n
查看連接狀態分布; -
ss -ntp
或者netstat -ntp
查看連接隊列; -
查看協議棧情況;netstat -s
方法論
RED方法:監控服務的請求數(Rate)、錯誤數(Errors)、響應時間(Duration)。Weave Cloud在監控微服務性能時提出的思路。USE方法:監控系統資源的使用率(Utilization)、飽和度(Saturation)、錯誤數(Errors)。
性能分析工具

CPU分析思路
首先,從 CPU 的角度來說,主要的性能指標就是 CPU 的使用率、上下文切換以及 CPU Cache 的命中率等。下面這張圖就列出了常見的 CPU 性能指標。


內存分析思路
接著我們來看內存方面。從內存的角度來說,主要的性能指標,就是系統內存的分配和使用、進程內存的分配和使用以及 SWAP 的用量。下面這張圖列出了常見的內存性能指標。

IO分析思路
從文件系統和磁盤 I/O 的角度來說,主要性能指標,就是文件系統的使用、緩存和緩沖區的使用,以及磁盤 I/O 的使用率、吞吐量和延遲等。下面這張圖列出了常見的 I/O 性能指標。


網絡分析思路
從網絡的角度來說,主要性能指標就是吞吐量、響應時間、連接數、丟包數等。根據 TCP/IP 網絡協議棧的原理,我們可以把這些性能指標,進一步細化為每層協議的具體指標。這里我同樣用一張圖,分別從鏈路層、網絡層、傳輸層和應用層,列出了各層的主要指標。


基準測試工具
除了性能分析外,很多時候,我們還需要對系統性能進行基準測試。比如,- 在文件系統和磁盤 I/O 模塊中,我們使用 fio 工具,測試了磁盤 I/O 的性能。
- 在網絡模塊中,我們使用 iperf、pktgen 等,測試了網絡的性能。
- 而在很多基于 Nginx 的案例中,我們則使用 ab、wrk 等,測試 Nginx 應用的性能。

參考
- 相當一部分內容來自極客時間出品的倪鵬飛專欄《Linux性能優化》, 這是之前這個專欄的學習筆記。
- 另一份資料是IBM紅寶書Linux性能調優指南。
- 此外,The Linux Documentation Project是一個非常好的資料庫。
- 將硬件中斷的處理任務分配個多個CPU:SMP affinity and proper interrupt handling in Linux
- Hidden Costs of Memory Allocation
- https://www.lijiaocn.com/soft/linux/
END
開發板/核心板/主板/整機
OEM/ODM
原文標題:Linux問題分析與性能優化
文章出處:【微信公眾號:啟揚ARM嵌入式開發】歡迎添加關注!文章轉載請注明出處。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
Linux
+關注
關注
87文章
11456瀏覽量
212750
發布評論請先 登錄
相關推薦
熱點推薦
VirtualLab:光柵的優化與分析
光柵是光學工程師使用的最基本的工具。為了設計和分析這類組件,快速物理光學建模和設計軟件VirtualLab Fusion為用戶提供了許多有用的工具。其中包括參數優化,以輕松優化系統,以及參數運行,它
發表于 05-23 08:49
Linux主要的性能有哪些?
都有確定的用途。它支持32位和64位硬件,能運行主要的unix工具軟件、應用程序和網絡協議。linux繼承了unix以網絡為核心的設計思想,是一個性能穩定的多用戶網絡操作系統。 Linux主要特性 1 永久免費

HarmonyOS NEXT 原生應用/元服務-DevEco Profiler性能優化過程
流程概覽
在開發應用時,開發者會對應用的運行情況有一個預期的指標,當應用在某些方面不能滿足預期的指標或者表現不佳時,意味著您的應用可能存在性能問題,需要對應用進行性能優化以達到您的預期。應用的
發表于 02-19 15:28
VirtualLab Fusion應用:光柵的魯棒性分析與優化
制造過程產生的與設計參數的小偏差。請查看下面的文檔,找到我們根據其填充因子優化傾斜光柵的示例。我們使用新發布的Parameter Variation Analyzer來執行設置的容差分析,并計算一個評價
發表于 02-19 08:54
MPLS網絡性能優化技巧
MPLS(多協議標簽交換)網絡性能優化是一個復雜的過程,涉及多個方面的技術和策略。以下是一些關鍵的MPLS網絡性能優化技巧: 一、確保網絡設備支持 設備兼容性 :確保所有網絡設備(如路
如何優化DCS系統的性能
優化DCS(分布式控制系統)系統的性能是確保工業自動化過程高效、穩定運行的關鍵。以下是一些具體的優化措施: 一、硬件優化 設備選擇與升級 :檢查并確保DCS系統的硬件設備符合規格要求,
如何優化emc存儲性能
性能。 1. 理解存儲架構 在進行任何優化之前,了解你的EMC存儲系統的架構是至關重要的。這包括識別存儲陣列的型號、配置、連接的主機以及存儲網絡的布局。了解這些基本信息可以幫助你確定可能的性能瓶頸和
如何優化SOC芯片性能
優化SOC(System on Chip,系統級芯片)芯片性能是一個復雜而多維的任務,涉及多個方面的優化策略。以下是一些關鍵的優化措施: 一、架構設計
如何優化FPGA設計的性能
、延遲、吞吐量等。這些指標應根據系統的性能需求和資源限制來確定。 分析約束 :了解并考慮所有相關的設計約束,如功耗、成本、可制造性等,以確保優化方案的實際可行性。 二、邏輯設計優化 減
linux常用性能優化方法
占用一個本地端口號(與 TCP 協議端口號不一樣),相當于一個進程,便于與其它進程進行交互。而Linux內核的TCP/IP 協議實現模塊對本地端口號的范圍進行了限制。當端口號用盡,就會出現這種錯誤了。
如何優化Linux服務器的性能
優化Linux服務器的性能是一個綜合性的任務,涉及硬件、軟件、配置、監控等多個方面。以下是一個詳細的指南,旨在幫助系統管理員和運維人員提升Linux服務器的
Linux服務器性能查看方法
Linux服務器性能查看是系統管理員和開發人員在日常工作中經常需要進行的任務,以確保系統穩定運行并優化資源使用。以下將詳細介紹多種Linux服務器性
評論