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