压测信息: envoy版本: 1.23.2-dev istio版本:1.15.2 envoy只打开了access log,没有配置任何VS和DR,去掉了jeager和stat-filter插件,流量通过iptables接管到envoy。 pod层面做的压测,资源为 1c2g的sidecar配比,业务容器是1c2g,响应比较快,request的大小是多少,response就返回多少。 网络是k8s的内网,延迟很低,不超过1ms。
压测准备: 构建 test1---->test2的链路,在test1的pod里面进行压测,访问的接口是test1的,这里的接口内部实现了调用test2的逻辑,也就是说:流量是下面这个样子 --流量--》test1---〉envoy-outbound----->envoy-inbound---->test2。 1.通过dd工具生成,5k,10k,20k ,50k,100k大小的文件 作为 流量request的body大小,下面是生成的一个例子: # dd if=/dev/zero of=test-10k bs=10k count=1 1+0 records in 1+0 records out 10240 bytes (10 kB, 10 KiB) copied, 9.7164e-05 s, 105 MB/s 参考:
https://www.cnblogs.com/machangwei-8/p/10353628.html 2.压测工具使用的是hey,压测命令的例子如下: # ./hey -n 20000 -c 2 -q 500 -D test-10k -m POST -H "Target-Name: test2.xxx.xxx.cluster.local" http://xx.xx.xx.xx:8080/status/200 Summary: Total: 20.0433 secs Slowest: 0.0140 secs Fastest: 0.0007 secs Average: 0.0010 secs Requests/sec: 997.8397 Total data: 737280000 bytes Size/request: 36864 bytes ...... Latency distribution: 10% in 0.0008 secs 25% in 0.0009 secs 50% in 0.0010 secs 75% in 0.0011 secs 90% in 0.0012 secs 95% in 0.0013 secs 99% in 0.0016 secs ...... Status code distribution: [200] 20000 responses
参考:
https://www.cnblogs.com/wintersun/p/12492096.html
压测结果:
场景一:downstream(mesh接管) --→upstream(mesh不接管接管)
活跃链接数 request body大小 耗时增加 1~20 0~20KB 1.5~3ms 50KB 2~4ms 100KB 3~6ms 30 0~10KB 2~4ms 20~50KB 3~8ms 100KB 8~10ms 40 0~20KB 4~7ms 50KB 6~9ms 100KB 7~12ms 50 0~20KB 4~8ms 50KB 8~11ms 100KB 8~16ms 100 0~10KB 9~17ms 20KB 14~20ms 50KB 18~28ms 100KB 20~40ms
场景二:downstream(mesh接管) --→upstream(mesh接管) 活跃链接数 request body大小 耗时增加 10 0~20KB 2ms 50KB 3ms 100KB 3.5ms 20 0~20KB 3ms 50KB 4~10ms 100KB 6~13ms 30 0~20KB 4~6ms 50KB 6~15ms 100KB 8~20ms 40 0~20KB 4~6ms 50KB 6~15ms 100KB 8~20ms 50 0~10KB 4~10ms 20KB 6~12ms 50KB 8~12ms 100KB 10~16ms 100 0~10KB 10~20ms 20KB 14~20ms 50KB 18~30ms 100KB 20~40ms