成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一文掌握 Linux 性能分析之網絡篇

系統 Linux
比較寬泛地講,網絡方向的性能分析既包括主機測的網絡配置查看、監控,又包括網絡鏈路上的包轉發時延、吞吐量、帶寬等指標分析。

 比較寬泛地講,網絡方向的性能分析既包括主機測的網絡配置查看、監控,又包括網絡鏈路上的包轉發時延、吞吐量、帶寬等指標分析。包括但不限于以下分析工具:

  • ping:測試網絡連通性
  • ifconfig:接口配置
  • ip:網絡接口統計信息
  • netsat:多種網絡棧和接口統計信息
  • ifstat:接口網絡流量監控工具
  • netcat:快速構建網絡連接
  • tcpdump:抓包工具
  • sar:統計信息歷史
  • traceroute:測試網絡路由
  • pathchar:確定網絡路徑特征
  • dtrace:TCP/IP 棧跟蹤
  • iperf / netperf / netserver:網絡性能測試工具
  • perf 性能分析神器

本文先來看前面 7 個。

ping

ping 發送 ICMP echo 數據包來探測網絡的連通性,除了能直觀地看出網絡的連通狀況外,還能獲得本次連接的往返時間(RTT 時間),丟包情況,以及訪問的域名所對應的 IP 地址(使用 DNS 域名解析),比如:

 

我們 ping baidu.com,-c 參數指定發包數。可以看到,解析到了 baidu 的一臺服務器 IP 地址為 220.181.112.244。RTT 時間的平均和算術平均差分別是 40.732ms、40.762ms、40.791ms 和 0.248。

ifconfig

ifconfig 命令被用于配置和顯示 Linux 內核中網絡接口的統計信息。通過這些統計信息,我們也能夠進行一定的網絡性能調優。

 

1)ifconfig 顯示網絡接口配置信息

其中,RX/TX packets 是對接收/發送數據包的情況統計,包括錯誤的包,丟掉多少包等。RX/TX bytes 是接收/發送數據字節數統計。其余還有很多參數,就不一一述說了,性能調優時可以重點關注 MTU 和 txqueuelen(發送隊列長度),比如可以用下面的命令來對這兩個參數進行微調:

  1. ifconfig eth0 txqueuelen 2000 
  2. ifconfig eth0 mtu 1500  

2)網絡接口地址配置

ifconfig 還常用來配置網口的地址,比如:

為網卡配置和刪除IPv6地址:

  1. ifconfig eth0 add 33ffe:3240:800:1005::2/64 #為網卡eth0配置IPv6地址 
  2. ifconfig eth0 del 33ffe:3240:800:1005::2/64 #為網卡eth0刪除IPv6地址 

修改MAC地址:

  1. ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE 

配置IP地址:

  1. ifconfig eth0 192.168.2.10 
  2. ifconfig eth0 192.168.2.10 netmask 255.255.255.0 
  3. ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255 

IP

ip 命令用來顯示或設置 Linux 主機的網絡接口、路由、網絡設備、策略路由和隧道等信息,是 Linux 下功能強大的網絡配置工具,旨在替代 ifconfig 命令,如下顯示 IP 命令的強大之處,功能涵蓋到 ifconfig、netstat、route 三個命令。

 

netstat

netstat 可以查看整個 Linux 系統關于網絡的情況,是一個集多鐘網絡工具于一身的組合工具。

常用的選項包括以下幾個:

  • 默認:列出連接的套接字
  • -a:列出所有套接字的信息
  • -s:各種網絡協議棧統計信息
  • -i:網絡接口信息
  • -r:列出路由表
  • -l:僅列出有在 Listen 的服務狀態
  • -p:顯示 PID 和進程名稱

各參數組合使用實例如下:

  • netstat -at 列出所有 TCP 端口
  • netstat -au 列出所有 UDP 端口
  • netstat -lt 列出所有監聽 TCP 端口的 socket
  • netstat -lu 列出所有監聽 UDP 端口的 socket
  • netstat -lx 列出所有監聽 UNIX 端口的 socket
  • netstat -ap | grep ssh 找出程序運行的端口
  • netstat -an | grep ':80' 找出運行在指定端口的進程

1)netstat 默認顯示連接的套接字數據

 

整體上來看,輸出結果包括兩個部分:

  • Active Internet connections :有源 TCP 連接,其中 Recv-Q 和 Send-Q 指的是接收隊列和發送隊列,這些數字一般都是 0,如果不是,說明請求包和回包正在隊列中堆積。
  • Active UNIX domain sockets:有源 UNIX 域套接口,其中 proto 顯示連接使用的協議,RefCnt 表示連接到本套接口上的進程號,Types 是套接口的類型,State 是套接口當前的狀態,Path 是連接到套接口的進程使用的路徑名。

2)netstat -i 顯示網絡接口信息

 

接口信息包括網絡接口名稱(Iface)、MTU,以及一系列接收(RX-)和傳輸(TX-)的指標。其中 OK 表示傳輸成功的包,ERR 是錯誤包,DRP 是丟包,OVR 是超限包。

這些參數有助于我們對網絡收包情況進行分析,從而判斷瓶頸所在。

3)netstat -s 顯示所有網絡協議棧的信息

 

可以看到,這條命令能夠顯示每個協議詳細的信息,這有助于我們針對協議棧進行更細粒度的分析。

4)netstat -r 顯示路由表信息

 

這條命令能夠看到主機路由表的一個情況。當然查路由我們也可以用 ip route 和 route 命令,這個命令顯示的信息會更詳細一些。

ifstat

ifstat 主要用來監測主機網口的網絡流量,常用的選項包括:

  • -a:監測主機所有網口
  • -i:指定要監測的網口
  • -t:在每行輸出信息前加上時間戳
  • -b:以 Kbit/s 顯示流量數據,而不是默認的 KB/s
  • -delay:采樣間隔(單位是 s),即每隔 delay 的時間輸出一次統計信息
  • -count:采樣次數,即共輸出 count 次統計信息

比如,通過以下命令統計主機所有網口某一段時間內的流量數據:

 

可以看出,分別統計了三個網口的流量數據,前面輸出的時間戳,有助于我們統計一段時間內各網口總的輸入、輸出流量。

netcat

netcat,簡稱 nc,命令簡單,但功能強大,在排查網絡故障時非常有用。

它主要被用來構建網絡連接。可以以客戶端和服務端的方式運行,當以服務端方式運行時,它負責監聽某個端口并接受客戶端的連接,因此可以用它來調試客戶端程序;當以客戶端方式運行時,它負責向服務端發起連接并收發數據,因此也可以用它來調試服務端程序,此時它有點像 Telnet 程序。

常用的選項包括以下幾種:

  • -l:以服務端的方式運行,監聽指定的端口。默認是以客戶端的方式運行。
  • -k:重復接受并處理某個端口上的所有連接,必須與 -l 一起使用。
  • -n:使用 IP 地址表示主機,而不是主機名,使用數字表示端口號,而不是服務名稱。
  • -p:當以客戶端運行時,指定端口號。
  • -s:設置本地主機發出的數據包的 IP 地址。
  • -C:將 CR 和 LF 兩個字符作為結束符。
  • -U:使用 UNIX 本地域套接字通信。
  • -u:使用 UDP 協議通信,默認使用的是 TCP 協議。
  • -w:如果 nc 客戶端在指定的時間內未檢測到任何輸入,則退出。
  • -X:當 nc 客戶端與代理服務器通信時,該選項指定它們之間的通信協議,目前支持的代理協議包括 “4”(SOCKS v.4),“5”(SOCKS v.5)和 “connect” (HTTPs Proxy),默認使用 SOCKS v.5。
  • -x:指定目標代理服務器的 IP 地址和端口號。

下面舉一個簡單的例子,使用 nc 命令發送消息:

首先,啟動服務端,用 nc -l 0.0.0.0 12345 監聽端口 12345 上的所有連接。

 

然后,啟動客戶端,用 nc -p 1234 127.0.0.1 12345 使用 1234 端口連接服務器 127.0.0.1::12345。

 

接著就可以在兩端互發數據了。這里只是拋磚引玉,更多例子大家可以多實踐。

tcpdump

tcpdump是一個強大的網絡抓包工具。雖然有 wireshark 這樣更易使用的圖形化抓包工具,但 tcpdump 仍然是網絡排錯的必備利器。

tcpdump 選項很多,我就不一一列舉了,大家可以看文章末尾的引用來進一步了解。這里列舉幾種 tcpdump 常用的用法。

1)捕獲某主機的數據包

比如想要捕獲主機 200.200.200.100 上所有收到和發出的所有數據包,使用:

  1. tcpdump host 200.200.200.100 

2)捕獲多個主機的數據包

比如要捕獲主機 200.200.200.1 和主機 200.200.200.2 或 200.200.200.3 的通信,使用:

  1. tcpdump host 200.200.200.1 and (200.200.200.2 or ) 

同樣要捕獲主機 200.200.200.1 除了和主機 200.200.200.2 之外所有主機通信的 IP 包。使用:

tcpdump ip host 200.200.200.1 and ! 200.200.200.2

3)捕獲某主機接收或發出的某種協議類型的包

比如要捕獲主機 200.200.200.1 接收或發出的 Telnet 包,使用:

  1. tcpdump tcp port 23 host 200.200.200.1 

4)捕獲某端口相關的數據包

比如捕獲在端口 6666 上通過的包,使用:

  1. tcpdump port 6666 

5)捕獲某網口的數據包

比如捕獲在網口 eth0 上通過的包,使用:

  1. tcpdump -i eth0 

下面還是舉個例子,抓取 TCP 三次握手的包:(具體抓包的過程請移步到我的公眾號進一步了解,那里閱讀體驗好一點,謝謝。)

總結:

本文總結了幾種初級的網絡工具,基本的網絡性能分析,通過組合以上幾種工具,基本都能應付,但對于復雜的問題,以上工具可能就無能為力了。更多高階的工具將在下文送上,敬請期待。

責任編輯:武曉燕 來源: 今日頭條
相關推薦

2022-10-27 07:21:47

Linux性能頻率

2021-05-12 18:22:36

Linux 內存管理

2020-10-09 07:56:52

Linux

2022-12-20 07:39:46

2023-12-21 17:11:21

Containerd管理工具命令行

2021-02-22 09:05:59

Linux字符設備架構

2020-12-18 11:54:22

Linux系統架構

2021-06-04 09:35:05

Linux字符設備架構

2022-10-21 17:24:34

契約測試定位

2020-07-30 07:50:56

數據分析

2025-05-21 09:32:28

2023-10-24 11:44:21

2023-12-15 09:45:21

阻塞接口

2025-06-11 10:05:00

垃圾回收GC內存

2017-11-29 13:55:55

神經網絡循環神經網絡RNN

2022-08-01 14:59:57

Web前端后端

2016-08-18 00:21:12

網絡爬蟲抓取網絡

2021-12-29 18:00:19

無損網絡網絡通信網絡

2022-07-05 06:30:54

云網絡網絡云原生

2017-11-28 15:20:27

Python語言編程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美伦理一区 | 欧美精品在线免费观看 | 精品视频在线观看 | 国产精品一区二区三区在线 | 99视频在线 | 国产成人一区 | 久久精品视频在线观看 | 一区二区三区四区在线播放 | 亚洲欧美在线一区 | 91精品国产乱码久久久久久久久 | 97超碰人人 | 国产免费福利小视频 | 精品国产31久久久久久 | 超碰免费在线观看 | 日本中文字幕在线视频 | 美美女高清毛片视频免费观看 | 精品久久久久久久久久久下田 | 色欧美综合 | 狠狠操狠狠 | 亚洲视频在线观看 | 日本精品一区二区三区在线观看视频 | 亚洲性视频 | 欧美激情视频网站 | 国产成人久久精品一区二区三区 | 成人在线看片 | 欧美成人a∨高清免费观看 色999日韩 | 成人久久久久 | 毛片链接| 国产精品一区一区三区 | 久久久久国产一区二区三区四区 | 久久激情视频 | 男人的天堂视频网站 | 久久久久久久一区二区 | 欧美福利精品 | av在线免费观看网站 | 久久av综合 | 日韩中文字幕一区 | 精品在线看| 久久久久国产一区二区三区四区 | 精品国产区 | 国产精品视频网站 |