日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux问题分析与性能优化

發布時間:2024/4/11 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux问题分析与性能优化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

    • 排查順序

    • 方法論

    • 性能分析工具

    • 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)。

    性能分析工具

    Linux 內核的各個子系統出發,匯總了對各個子系統進行性能分析時,你可以選擇的工具。不過,雖然這個圖是性能分析最好的參考資料之一,它其實還不夠具體。比如,當你需要查看某個性能指標時,這張圖里對應的子系統部分,可能有多個性能工具可供選擇。但實際上,并非所有這些工具都適用,具體要用哪個,還需要你去查找每個工具的手冊,對比分析做出選擇。

    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 -


    看完一鍵三連在看轉發,點贊

    是對文章最大的贊賞,極客重生感謝你

    推薦閱讀

    如何分析常見的TCP問題?

    網絡排障全景指南手冊v1.0精簡版pdf

    云網絡丟包故障定位全景指南

    硬核分析|騰訊云原生OS內存回收導致關鍵業務抖動問題

    一個奇葩的網絡問題,把技術磚家"搞蒙了"

    總結

    以上是生活随笔為你收集整理的Linux问题分析与性能优化的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。