一、測試命令qperf
需要大家yum install qperf,這個工具能同時測試帶寬和延時,很容易使用。
1、需要在其中一端開啟服務端監聽:
qperf
2、在另一端開啟客戶端壓測:
qperf -t 10 10.42.158.21 tcp_bw tcp_lat
這個命令是意思是:
-- 運行10秒
-- 服務端IP:10.42.158.21
-- 測試TCP協議的極限帶寬:tcp_bw
-- 測試TCP協議的延遲:tcp_lat
宿主機->宿主機
tcp_bw: bw = 470 MB/sec tcp_lat: latency = 61.4 us
帶寬470MB/秒,延遲61微秒。
延遲可能受到雲主機網絡環境影響,僅能拿來大概參考。
宿主機->POD
在node02上啟動一個POD運行qperf服務端,這是通過nodeName參數指定調度到node02的:
apiVersion: apps/v1 kind: Deployment metadata: name: qperf-server labels: app: qperf-server spec: replicas: 1 selector: matchLabels: app: qperf-server template: metadata: labels: app: qperf-server spec: nodeName: node02 containers: - name: centos image: centos:latest command: ["/bin/sh","-c","while true;do sleep 1;done"]
進入qperf-server:
kubectl exec -it qperf-server-5745f97ccc-cf8sm sh
然后啟動qperf服務端:
qperf
然后在node01宿主機上發起到POD的測試:
[root@node01 ~]# qperf -t 10 10.244.1.96 tcp_bw tcp_lat tcp_bw: bw = 302 MB/sec tcp_lat: latency = 77 us
網絡性能損耗:36%。
二、測試命令curl測試延時
1、Kubernetes集群node節點上通過Cluster IP訪問
curl -o /dev/null -s -w '%{time_connect} %{time_starttransfer} %{time_total}' "http://10.254.149.31:8000/"
time_connect:建立到服務器的 TCP 連接所用的時間
time_starttransfer:在發出請求之后,Web 服務器返回數據的第一個字節所用的時間
time_total:完成請求所用的時間
2、Kubernetes集群內部通過service訪問
curl -o /dev/null -s -w '%{time_connect} %{time_starttransfer} %{time_total}' "http://10.254.149.31:8000/"