【背景】
客户在做CVM的基准线的性能压测,当前反馈使用iperf在做网络PPS基准线压测时,云服务器压测出来的数据,远远超过官网承诺的值,质疑腾讯云云服务器没有做网络限制;
【知识普及】
1、压测工具:
推荐使用iperf3、Netperf;
操作方式:可以借鉴腾讯云官网网络性能测试最佳实践https://cloud.tencent.com/document/product/213/11460
需要提醒的是:测试带宽性能使用TCP;测试PPS使用UDP;iperf参数说明
2、性能参考相关工具
sar :sar -n DEV 5 ;--查看网卡包数量;5代表刷新时间
ethtool:ethtool -S eth0;--查看网卡队列数量;
【问题描述】
客户在做基准线的性能压测,当前反馈SA3机型2C4G/8C16G 内网测试的数据超过官网承诺的上限。
机器配置 | 压测指标 | SA3机型测试数据 | 官网承诺值 |
---|---|---|---|
2C4G | NET(PPS) | 89W | 30W |
4C8G | NET(PPS) | 109W | 50W |
8C16G | NET(PPS) | 158W | 80W |
【问题排查】
1、客户压测方式
资源:一个SERVER端,两个压测client端;
压测操作:iperf3 -t 300 -M 100 -P 128
2、初步怀疑:
压测PPS应该使用 -u,默认用UDP方式进行;
-M参数:腾讯云机器默认配置MTU为1500,压测时一般默认为1460大小;
-P参数:网卡队列,腾讯云机器一般对齐CPU数,远没有128;
3、测试验证:
按客户的压测操作,确实能压到超过官网的数值;但这块数据在非建议的措施上进行,不太建议作为基准线使用;
【推荐姿势】
1、压测命令:
iperf -u -c server_ip -b 400000pps -l 100bit -i 1 -p 3389 (-l指定100bit主要是避免带宽成为瓶颈;-p为指定端口;-b 40W PPS设置主要是2台client为80W)
2、调整机器UDP缓冲配置:
vi /etc/sysctl.conf 添加 net.core.wmem_default = 8388608 net.core.rmem_default = 8388608 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216
然后执行sysctl -p 使得参数生效
3、压测结果:
压80W的情况下,8C16G的机器出现1%左右的丢包情况;
压测2倍官网承诺值的情况下,丢包接近50%。
【总结】
腾讯云的机器网络包有着强隔离的限制,在压测时需要采用标准推荐的方式,同时建议采用腾讯云官网产品SLA作为基准线。