istio: 如何对istio数据平面进行benchmark

本文介绍了如何使用istio tools perf benchmark对istio数据平面进行性能测试,重点关注latency和资源消耗。测试结果显示,全mesh和仅服务端mesh模式相对于直连模式,时延增加不超过8ms,而高QPS下CPU使用率明显上升。
摘要由CSDN通过智能技术生成

背景介绍

istio在应用时,会遇到的2个典型质疑是:

  • istio增加了单独的数据平面,从传输的角度来说增加了2跳,势必会带来latency的增加。那么latency的增加到底是多少呢?
  • proxy容器需要实现数据面的报文劫持、转发,以及一些策略的实施,其需要的cpu、内存,是多少呢?

要回答这些问题,就要对istio的数据面进行量化。 istio社区提供了一个工具来进行具体的测试: istio tools perf benchmark

为什么不需要对控制面进行量化呢?主要原因是数据面是O(n)的空间复杂度,而控制面几乎是O(1)的空间复杂度。另外一个原因是目前istio的遥测、限流等策略,均为envoy实现,不再交由mixer组件处理,因此集群规模提升后对控制面来说变化不大。

准备

istio tools perf benchmark需要读取Pod的监控信息,因此部署istio时,需要增加Prometheus组件。具体参考 Prometheus安装 。

tools install

安装参考 readme 即可。

注意:

  1. 资源需求比较多,要求至少32 cpu、4个node。建议使用完善的生产集群,确保硬件资源充裕。
  2. 测试套依赖python3/pip3/pipenv,所以最好是在有网环境进行安装,我这里选择的是本地PC;若离线安装,可能会遇到一些镜像源获取不到的问题。
  3. 不要在docker环境中安装,测试套运行过程中会使用docker执行一些命令,如果在docker中安装会执行失败。

安装后,将在namespace twopods-istio中部署2个Deployment:fortioclient/fortioserver。下面简要说明下。

fortioclient

Deployment的编排文件请见 deployment fortioclient 。Pod的编排文件请见pod fortioclient

来看 Pod fortioclient。其包括4个container和1个init container࿱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值