<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

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

      本文首發于我的公眾號 Linux云計算網絡(id: cloud_dev),專注于干貨分享,號內有 10T 書籍和視頻資源,后臺回復「1024」即可領取,歡迎大家關注,二維碼文末可以掃。

      這是 Linux 性能分析系列的第四篇,前三篇在這里:

      一文掌握 Linux 性能分析之 CPU 篇

      一文掌握 Linux 性能分析之內存篇

      一文掌握 Linux 性能分析之 I/O 篇

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

      • 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(發送隊列長度),比如可以用下面的命令來對這兩個參數進行微調:

      ifconfig eth0 txqueuelen 2000
      ifconfig eth0 mtu 1500 
      

      2)網絡接口地址配置

      ifconfig 還常用來配置網口的地址,比如:
      為網卡配置和刪除IPv6地址:

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

      修改MAC地址:

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

      配置IP地址:

      ifconfig eth0 192.168.2.10
      ifconfig eth0 192.168.2.10 netmask 255.255.255.0
      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 上所有收到和發出的所有數據包,使用:

      tcpdump host 200.200.200.100
      

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

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

      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 包,使用:

      tcpdump tcp port 23 host 200.200.200.1
      

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

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

      tcpdump port 6666
      

      5)捕獲某網口的數據包

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

      tcpdump -i eth0
      

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

      總結:

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

      參考:
      基礎 http://kuring.me/post/linux_net_tools/

      講 ip 和 ifconfig 很強大的一篇文章:

      https://blog.csdn.net/freeking101/article/details/68939059

      https://www.alibabacloud.com/help/zh/faq-detail/55757.htm

      性能之巔:Linux網絡性能分析工具http://www.infoq.com/cn/articles/linux-networking-performance-analytics
      抓包工具tcpdump用法說明 http://www.rzrgm.cn/f-ck-need-u/p/7064286.html
      https://www.shiyanlou.com/courses/92

      http://linuxtools-rst.readthedocs.io/zh_CN/latest/index.html

      https://www.shiyanlou.com/courses/92/labs/972/document


      我的公眾號 「Linux云計算網絡」(id: cloud_dev) ,號內有 10T 書籍和視頻資源,后臺回復 「1024」 即可領取,分享的內容包括但不限于 Linux、網絡、云計算虛擬化、容器Docker、OpenStack、Kubernetes、工具、SDN、OVS、DPDK、Go、Python、C/C++編程技術等內容,歡迎大家關注。

      posted @ 2019-03-13 11:26  bakari  閱讀(7276)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久久久国产精品人妻| аⅴ天堂中文在线网| 人妻夜夜爽天天爽一区| 国内精品自国内精品自久久| 日本高清中文字幕免费一区二区| 国产成人人综合亚洲欧美丁香花| 真实单亲乱l仑对白视频| 久久精品国产久精国产69| 中文字幕亚洲男人的天堂| 午夜精品久久久久久99热| 一区二区三区四区精品黄| 中文字幕精品人妻丝袜| gogo无码大胆啪啪艺术| 人人妻人人澡人人爽人人精品av| 人妻中文字幕精品系列| 亚洲日韩一区二区| 久久99精品久久久久久琪琪| 亚洲精品综合久久国产二区| 四虎在线播放亚洲成人| 在线观看国产成人AV天堂| 日韩人妻少妇一区二区三区| 综合色在线| 午夜在线欧美蜜桃| 国产午夜A理论毛片| 日本阿v片在线播放免费| 国产人妻精品午夜福利免费 | 色综合久久综合久鬼色88| 玩弄丰满少妇人妻视频| 国产精品国语对白露脸在线播放| 日本一区二区精品色超碰| 亚洲色最新高清AV网站| 国产亚洲精品成人av久| 国产精品久久蜜臀av| 国产不卡一区二区在线| 熟女女同亚洲女同中文字幕| 亚洲国产精品高清久久久| 国产av丝袜旗袍无码网站| 男人又大又硬又粗视频| 精品人妻中文字幕在线| 国产精品不卡一区二区久久| 暖暖 免费 高清 日本 在线观看5 色老头亚洲成人免费影院 |