ServiceComb性能测试
- 前言
本文以一个最简单的单consumer->单producer的测试场景为例,说明了如何在指定测试环境中,通过观察metrics统计数据,不断调整参数压榨出最大性能,。
基本测试过程:
- 测试驱动加大压力,TPS逐渐上升
- 驱动压力达到一定程度后,TPS不再上升,或是缓慢上升,甚至是下降,此时伴随着时延明显上升,称之为性能拐点
- 调整consumer/producer各种参数(网络线程/业务线程等等),提升处理能力
- 重新调整测试驱动压力(加大或减小),重复前面步骤
- 输出最终性能拐点时的各项参数,包括TPS/时延/CPU/带宽等等
- 环境确认
- 使用华为云c3.2xlarge.2 VM
Node1 192.168.26.44
Node2 192.168.29.195
Node1 ping Node2:平均0.171ms
基准带宽:2 Gbit/s (指弹性云服务器能稳定达到的保证带宽)
最大带宽:5 Gbit/s (指弹性云服务器能够达到的最大带宽)
内网收发包:900,000 pps (指弹性云服务器能达到的最大收发包能力)
-
- 网络
打开网卡的RSS特性,执行ethtool -l eth0,得到类似下图的数据
如果Pre-set的Combined不等于Current的Combined,则执行ethtool -L eth0 combined {Pre-Set Combined}改为相等,在这里应该是ethtool -L eth0 combined 4
打开网络队列的自动负载均衡:service irqbalance start
-
- CPU
cat /proc/cpuinfo | grep name
8 Intel(R) Xeon(R) Gold 6151 CPU @ 3.00GHz
-
- 内存
dmidecode -t memory
16GB
- 部署
- service center
- 下载service center
- 上传到Node2,解压
- 修改conf/app.conf,监听地址设为Node2小网IP
Httpaddr = 192.168.29.195
- 启动service center
- 编译用例工程
- 下载源码
git clone https://github.com/apache/servicecomb-java-chassis.git
- 编译
mvn clean install -Dmaven.test.skip=true