本文提供一种通用的底层设备与平台无关的系统性能数据分析和对比方法,同样适用于物理机和其他云平台。本文所引用数据仅作为演示与参考,特定配置的性能数据请自行测量。
结论与分析:
本方案所用20多台云主机总和性能相当于2台Dell R620服务器(每台32核64GB),不考虑恶意攻击,也不考虑性能衰退前提下,现有配置足够支撑当前业务请求性能。
10万设备以内:无需增加配置
10-50万设备:根据实际业务负载,增加web前端和后端配置提升2-4倍,同时增加2-3倍数量,数据库服务器增加4-5倍性能,带宽也要相应增加。
Rom/OTA大规模升级预案:由于带宽有限,需要使用cdn服务。
恶意攻击预案:每组实例性能限制http/https 3000QPS,即使正常业务超过也被认为DDOS攻击,更换高防IP(1.9万/ip/月起),增加waf防火墙(5千-12万/3个月)。
性能衰退风险评估:性能包括cpu性能、内存性能、硬盘io性能、网络性能,宿主机可以实现动态性能限制,以及热迁移,需要定期测试,对比数据,及时发现性能衰退。
1. cpu性能
测量工具sysbench
2. 内存访问速度
测量工具sysbench memtest 内存性能3GB/s
3. 磁盘io性能
测量工具bonnie++ iozone 性能60MBps峰值1200IOPS
4. 网络性能带宽 qps
测量工具iperf netperf 持续带宽600Mbps左右
包吞吐量7万 pps
上图FreeBSD网络性能
5. Dns解析性能
测量工具dig域名解析延迟最低3毫秒
6. Rds-mysql数据库性能 4核心内存8GB 存储40GB
测量工具sysbench
7. Rds-redis redis性能
测量工具redis-benchmark 2.5万 rps
8. 外网网络延迟和丢包率测量
测量工具mtr
9. http性能测量
测量工具siege
Posixtestsuite stress-ng stressapptest netstress cpuburn fuzz
并发访问数9000
吞吐量: 180 tps
前端反向代理压力
后端php压力
Rds-mysql数据库压力
10. ECS自建mysql数据库性能qps 1.8万
硬盘io吞吐量 220MB/s
11. ECS自建redis性能
Redis-benchmark 4.4万rps
12. 网络性能衰退
git工具clone代码
关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。
有需要技术交流的小伙伴可以加我微信,期待与大家共同成长,本人微信: