云服务器iperf压测网络,PPS远超产品SLA?

【背景】

客户在做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作为基准线。