linux網路知識和工具(持續更新)

onephone發表於2017-01-17

涉及主機調優、網路效能調優、網路問題排查等方向,包含工具和原理的介紹

  1. 瞭解ifconfig中的引數資訊

    • dropped與overruns的區別 dropped,表示這個資料包已經進入到網路卡的接收快取fifo佇列,並且開始被系統中斷處理準備進行資料包拷貝(從網路卡快取fifo佇列拷貝到系統記憶體),但由於此時的系統原因(比如記憶體不夠等)導致這個資料包被丟掉,即這個資料包被Linux系統丟掉。 overruns,表示這個資料包還沒有被進入到網路卡的接收快取fifo佇列就被丟掉,因此此時網路卡的fifo是滿的。為什麼fifo會是滿的?因為系統繁忙,來不及響應網路卡中斷,導致網路卡里的資料包沒有及時的拷貝到系統記憶體,fifo是滿的就導致後面的資料包進不來,即這個資料包被網路卡硬體丟掉。所以,個人覺得遇到overruns非0,需要檢測cpu負載與cpu中斷情
    • The Missing Man Page for ifconfig
    • RX error overrun
  2. 能夠查詢和修改網路卡驅動引數及硬體配置

    • ethtool命令, 參考連結
    • 讀懂並修改網路卡 offload , RX/TX checksum, scatter, gather等配置, 參考連結
  3. 深層次的理解網路卡各類引數的意義,理解linux網路堆疊的排隊機制

  4. 瞭解網路核心引數

  5. Wireshark/Tshark相關網路工具指令碼彙總

    • Tools
    • 很實用,Wireshark/Tshark使用者肯定需要知道和了解的
  6. netsniff
    netsniff 套件中包含netsniff, trafgen, ifpps等工具;該套件是一個高效能的網路工具,功能豐富

    • netsniff(資料包捕獲/回放) netsniff-ng --in em3 --out /home/em3.pcap --silent --ring-size 500MiB --prio-high --verbose --bind-cpu 0
    • trafgen(流量生成) trafgen --cpp --dev ens33 --conf synflood.trafgen --verbose
    • ifpps (實時流量查詢) ifpps --dev ens160
  7. 其他

    • 實時流量查詢命令, vnstat
    • 列印出網路卡p5p2核心ring buffer, dmesg | grep p5p2
    • 檢視網路卡流量資訊, cat /proc/net/dev
    • 檢視網路核心引數設定,sysctl -a | grep net.core
    • 檢視網路卡PCI資訊, lspci -vvv | grep -i ethernet -A 5

相關文章