K8S測試網絡的帶寬和延時


一、測試命令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/" 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM