檢測ceph環境中是否存在網路問題,常用方法使用及總結如下:
iperf3:iperf3使用過程中會將網路壓滿,會影響業務,只能和技服充分溝通後再使用
服務端:iperf3 -s -p 4000 -f m
iperf3 -s(服務端) -p 4000(埠號) -f 開關指定生成報告的資料格式型別
客戶端:
iperf3 -c 192.168.26.51 -f k
iperf3 -c 192.168.26.51(服務端的ip) -f k -i 1(1s 重新整理1次) -t 60(執行60s) -p (port)
iperf3 -c 192.168.26.51 -f k -w 200k
-w 設定視窗大小和套接字緩衝區的大小
在伺服器傳送和客戶端接收的反向模式下執行,可以新增-r開關
iperf3 -c 192.168.26.51 -f k -w 200k -r
雙向執行測試,意味著我們要同時測量兩個方向上的寬頻 -d:
iperf3 -c 192.168.26.51 -f k -w 200k -d
如果要在客戶端輸出中獲取伺服器結果,可以使用「–get-server-output」選項,此時我們便會在客戶端192.168.26.131主機上獲取兩份資料。
iperf3 -c 192.168.26.51 -f k -w 200k --get-server-output
使用-p選項設定並行客戶端流的數量,它們同時執行
1、可以看到頻寬不穩,波動較大
2、retr過高,重傳意味著丟包,tcp發生丟包會嚴重影響通訊效能
3、視窗值過小,還沒有到1mb就開始重傳,滑動視窗太小,會降低效能
2、查詢ethx網口收發包統計,注意-s為大寫
ethtool -s eth2 | grep errors
[root@node1 lfl]# ethtool -s eth2 | grep errors
rx_crc_errors: 0
rx_missed_errors: 0
tx_aborted_errors: 0
tx_carrier_errors: 0
tx_window_errors: 0
rx_long_length_errors: 0
rx_short_length_errors: 0
rx_align_errors: 0
rx_errors: 0
tx_errors: 0
rx_length_errors: 0
rx_over_errors: 0
rx_frame_errors: 0
rx_fifo_errors: 0
tx_fifo_errors: 0
tx_heartbeat_errors: 0
排查bond2(業務網口)的各個網口是否存在錯誤資訊。
3、netstat -i | column –t 檢視網口介面資訊
主要觀察rx-err 和 tx-err項
相關各項解釋如下:
iface:網路介面名稱
mtu:最大傳輸單元
rx-ok:接收時,正確的資料報數
rx-err:接收時,產生錯誤的資料報數
rx-drp:接收時,丟棄的資料報數
rx-ovr:接收時,由於過速而丟失的資料報數
tx-ok:傳送時,正確的資料報數
tx-err:傳送時,產生錯誤的資料報數
tx-drp:傳送時,丟棄的資料報數
tx-ovr:傳送時,由於過速而丟失的資料報數
incsumerrors - 接收的帶有校驗和錯誤的報文數
tcp 接收的錯誤報文數
tcp 接收的目前所有建立連線的錯誤報文數
標紅的各項不停的幾十幾十的漲說明網路存在問題
5、tcpdump分析抓取相關網口的cap包,抓取後拖入wireshark中進行分析
tcpdump抓取相關包的方法如下:
抓取相關包:
tcpdump -i eth0 -s 0 -w file.pcap
可以指定埠進行抓包:tcpdump -i eth0 port 22
讀取抓包檔案:
tcpdump -r file.pcap
網路問題排查
我感覺遇見的最煩人的問題就是網路問題了,小到什麼你快來幫我看看,我怎麼又連不上網了,大到服務直接訪問不到了。諸如此類的問題特別煩人,但是又經常遇到,你還一點都不敢拖著不處理。小問題當然好解決了,重啟一下就糊弄過去了,但是一旦上公升到企業層面上,網路問題則不容忽視,在踩過不少坑以後,我總結出了排查網路...
學習了!頻繁發生FullGC問題排查手段
如題,機器發生頻繁fullgc報警,如何定位原因?一般現象為cpu飆高,rt增加,另外很可能出現oom。當碰到這種現象時,如何定位 列印heap的概要資訊,gc使用的演算法,heap 堆 的配置及jvm堆記憶體的使用情況.jmap heap pid列印每個class的例項數目,記憶體占用,類全名資訊...
docker網路問題排查
w x y18163201 再實際的生產環境中,我們為了保持 docker 映象最小的準則,並不會在 docker 映象裡面安裝沒有用的東西,有時候需要探測 docker 內部訪問外部的資源是否能正常訪問,或者是別人請求 docker 啟動的服務的時候不能正常訪問,我們需要通過一系列的 網路命令 t...