本文首發於個人公衆號 CloudDeveloper(ID: cloud_dev),專一於乾貨分享,號內有大量書籍和視頻資源,後臺回覆 「1024」便可領取,歡迎你們關注,二維碼文末能夠掃。
這是 Linux 性能分析系列的第五篇,前四篇在這裏:node
一文掌握 Linux 性能分析之 IO 篇socket
在上篇網絡篇中,咱們已經介紹了幾個 Linux 網絡方向的性能分析工具,本文再補充幾個。總結下來,餘下的工具包括但不限於如下幾個:性能
因爲篇幅有限,本文會先介紹前面兩個,其餘工具留做後面介紹,你們能夠持續關注。測試
sar 是一個系統歷史數據統計工具。統計的信息很是全,包括 CPU、內存、磁盤 I/O、網絡、進程、系統調用等等信息,是一個集大成的工具,很是強大。在 Linux 系統上 sar --help
一下,能夠看到它的完整用法。雲計算
在平時使用中,咱們經常用來分析網絡情況,其餘幾項的一般有更好的工具來分析。因此,本文會重點介紹 sar 在網絡方面的分析手法。spa
Linux 系統用如下幾個選項提供網絡統計信息:code
咱們來看幾個示例:
sar -n TCP 1
幾個參數瞭解一下:
經過這幾個參數,咱們基本能夠知道當前系統 TCP 鏈接的負載狀況。
sar -n DEV 1 | awk 'NR == 3 || $3 == "eth0"'
幾個參數瞭解一下:
這幾個參數對於分析網卡接收和發送的網絡吞吐量頗有幫助。
sar -n EDEV 1
幾個參數瞭解一下:
當發現接口傳輸數據包有問題時,查看以上參數可以讓咱們快速判斷具體是出的什麼問題。
OK,這個工具就介紹到這裏,以上只是拋磚引玉,更多技巧還須要你們動手去探索,只有動手,才能融會貫通。
traceroute 也是一個排查網絡問題的好工具,它能顯示數據包到達目標主機所通過的路徑(路由器或網關的 IP 地址)。若是發現網絡不通,咱們能夠經過這個命令來進一步判斷是主機的問題仍是網關的問題。
它經過向源主機和目標主機之間的設備發送一系列的探測數據包(UDP 或者 ICMP)來發現設備的存在,實現上利用了遞增每個包的 TTL 時間,來探測最終的目標主機。好比開始 TTL = 1,當到達第一個網關設備的時候,TTL - 1,TTL = 0 致使網關響應一個 ICMP 超時報文,這樣,若是沒有防火牆攔截的話,源主機就知道網關設備的地址。以此類推,逐步增長 TTL 時間,就能夠探測到目標主機之間所通過的路徑。
爲了防止發送和響應過程出現問題致使丟包,traceroute 默認會發送 3 個探測包,咱們能夠用 -q x 來改變探測的數量。若是中間設備設置了防火牆限制,會致使源主機收不到響應包,就會顯示 * 號。以下是 traceroute baidu
的結果:
每一行默認會顯示設備名稱(IP 地址)和對應的響應時間。發送多少個探測包,就顯示多少個。若是隻想顯示 IP 地址能夠用 -n 參數,這個參數能夠避免 DNS 域名解析,加快響應時間。
和這個工具相似的還有一個工具叫 pathchar,但平時用的很少,我就不介紹了。
以上就是兩個工具的簡單介紹,工具雖然簡單,但只要能解決問題,就是好工具。固然,性能分析不只僅依靠工具就能解決的,更多須要咱們多思考、多動手、多總結,逐步培養本身的系統能力,才能融會貫通。
參考:
iperf3
netperf netserver
https://www.jianshu.com/p/42e...
個人公衆號 cloud_dev,號內有大量書籍和視頻資源,後臺回覆 「1024」便可領取,分享的內容包括但不限於雲計算虛擬化、容器、OpenStack、K8S、霧計算、網絡、工具、SDN、OVS、DPDK、Linux、Go、Python、C/C++編程技術等內容,歡迎你們關注。