从Xinstall运行以来,目前已经累计为超过50000开发者从业人员以及企业提供了技术服务,涉及电子商务、新闻阅读、游戏、社交、金融、房地产等40余个行业App,尤其合作了一些千万级规模的大型企业后,Xinstall统计过的App安装量已经接近10亿+次,为企业介绍推广费用40%以上
万事开头难,起初Xinstall拓客步伐比较慢,客户量少。不少客户不知道Xinstall提供的传递智能参数以及渠道统计的服务。也对Xinstall渠道统计产生质疑,随着对客户的耐心解释以及一步步协助客户完成渠道统计SDK的对接,进行测试。经过实际数据测试后,客户才放心并且选择了Xinstall服务。
目前客户越来越多,责任越来越多,从最初的没人关注到现在慢慢有了我们的客户,这些客户是和Xinstall一起见证增长,也渐渐有了千万级以及亿级规模的知名企业客户,日均访问和统计量开始变得缓慢,Xinstall秉持着不忘初心服务号客户的宗旨去查找原因,优化性能服务好客户。
测试8v16g打包机拷贝速度
环境
一台裸Linux打包机 8v16g,型号:ecs.hfc6.2xlarge,不进行打包,仅进行拷贝测试,避免打包时的干扰。
磁盘本身性能说明
云盘的性能对比:
性能类别 | ESSD云盘 | ESSD云盘 | ESSD云盘 | ESSD云盘 | SSD云盘 |
---|---|---|---|---|---|
性能级别PL(Performance Level) | PL3 | PL2 | PL1 | PL0 | 无 |
单盘容量范围(GiB) | 1261~32768 | 461~32768 | 20~32768 | 40~32768 | 20~32768 |
最大IOPS | 1000000 | 100000 | 50000 | 10000 | 25000 |
最大吞吐量(MB/s) | 4000 | 750 | 350 | 180 | 300 |
单盘IOPS性能计算公式 ② | min{1800+50*容量, 1000000} | min{1800+50*容量, 100000} | min{1800+50*容量, 50000} | min{ 1800+12*容量, 10000 } | min{1800+30*容量, 25000} |
单盘吞吐量性能计算公式(MB/s) ② | min{120+0.5*容量, 4000} | min{120+0.5*容量, 750} | min{120+0.5*容量, 350} | min{100+0.25*容量, 180} | min{120+0.5*容量, 300} |
数据可靠性 | 99.9999999% | 99.9999999% | 99.9999999% | 99.9999999% | 99.9999999% |
单路随机写平均时延(ms),Block Size=4K | 0.2 | 0.3~0.5 | 0.5~2 | 1~3 | 5~10 |
参考:阿里云官方块存储性能
以上指标是针对云盘本身的性能进行说明,抛开其他影响因素后,云盘本身所能发挥的最大性能指标。
ECS实例存储I/O性能对比:
实例规格 | 最大IOPS(万,4KiB I/O) | 最大存储带宽(Gbit/s) | 最大吞吐量(MB/s,1024KiB I/O) |
---|---|---|---|
ecs.hfc6.large | 1.0 | 1.0 | 125 |
ecs.hfc6.xlarge | 2.0 | 1.5 | 187.5 |
ecs.hfc6.2xlarge | 2.5 | 2.0 | 250 |
ecs.hfc6.3xlarge | 3.0 | 2.5 | 312.5 |
ecs.hfc6.4xlarge | 4.0 | 3.0 | 375 |
ecs.hfc6.6xlarge | 5.0 | 4.0 | 500 |
ecs.hfc6.8xlarge | 6.0 | 5.0 | 625 |
ecs.hfc6.10xlarge | 10.0 | 8.0 | 1000 |
ecs.hfc6.16xlarge | 12.0 | 10.0 | 1250 |
ecs.hfc6.20xlarge | 20.0 | 16.0 | 2000 |
参考:阿里云官方存储I/O性能
我们的打包机为 ecs.hfc6.2xlarge 型号,对应最大IOPS为2.5万,最大吞吐量为:250MB/s
这里有一个非常重要的计算公式,将会影响我们测试以及实际生产中所能发挥的性能:IOPS * I/O大小 = 吞吐量
我们的Linux打包机指标说明:
我们关心的指标主要是:【最大 IOPS】 和 【最大吞吐量】 这两个,这两个指标符合短板效应,即最大指标为:min{ESC最大值, 云盘最大值}。
从而我们可以计算出我们这台打包机的理论最大指标:
- 系统盘 IOPS:min{25000, min{1800 + 50 * 500, 50000}} = 25000
- 系统盘 吞吐量:min{250, min{120 + 0.5 * 500, 350}} = 250 MB/s
- 外接磁盘 IOPS:min{25000, min{1800 + 50 * 1000, 50000}} = 25000
- 外接磁盘 吞吐量:min{250, min{120 + 0.5 * 1000, 350}} = 250 MB/s
从上述计算可知,我们当前在这两个指标上虽能发挥的最大性能已经被 ECS 本身的实例所限制,所以理论上如果我们需要进一步突破,那么需要先升级 ECS 的配置,否则单单升级磁盘性能已经没有作用了。
测试验证性能指标
- 测试方法:阿里云官方提供的测试方案(https://help.aliyun.com/document_detail/147897.htm?spm=a2c4g.11186623.0.0.20c67febPQWk5t#task-2363356)
拷贝速度测试准备工作
工作目录
主磁盘:/tmp/daiyi
外接磁盘:/mnt/tmp/daiyi
mkdir /mnt/tmp/
mkdir /mnt/tmp/daiyi
下载包
-
下载小包:https://zpbeta.oss-cn-hangzhou-internal.aliyuncs.com/app-original-packages/20211013/uykmzs1jwjxed.ipa
cd /tmp/daiyi curl https://zpbeta.oss-cn-hangzhou-internal.aliyuncs.com/app-original-packages/20211013/uykmzs1jwjxed.ipa -o small.ipa cd /mnt/tmp/daiyi curl https://zpbeta.oss-cn-hangzhou-internal.aliyuncs.com/app-original-packages/20211013/uykmzs1jwjxed.ipa -o small.ipa
-
下载大包:https://zpbeta.oss-cn-hangzhou-internal.aliyuncs.com/app-original-packages/20211018/pdqw8vgr5ljxn.ipa(2.33GB)
cd /tmp/daiyi ./ossutil64 cp -f oss://zpbeta/app-original-packages/20211018/pdqw8vgr5ljxn.ipa /tmp/daiyi/big.ipa --parallel 200 cd /mnt/tmp/daiyi ./ossutil64 cp -f oss://zpbeta/app-original-packages/20211018/pdqw8vgr5ljxn.ipa /mnt/tmp/daiyi/big.ipa --parallel 200
解压原包
cd /tmp/daiyi
unzip -O CP936 small.ipa -d small
unzip -O CP936 big.ipa -d big
cd /mnt/tmp/daiyi
unzip -O CP936 small.ipa -d small
unzip -O CP936 big.ipa -d big
cp 命令测试
-
小包速度测试
- 主磁盘 -> 主磁盘
- 主磁盘 -> 外接磁盘
- 外接磁盘 -> 外接磁盘
- 外接磁盘 -> 主磁盘
-
大包速度测试
- 主磁盘 -> 主磁盘
- 主磁盘 -> 外接磁盘
- 外接磁盘 -> 外接磁盘
- 外接磁盘 -> 主磁盘
node.js 直接拷贝测试
- 小包速度测试
- 主磁盘 -> 主磁盘
- 主磁盘 -> 外接磁盘
- 外接磁盘 -> 外接磁盘
- 外接磁盘 -> 主磁盘
- 大包速度测试
- 主磁盘 -> 主磁盘
- 主磁盘 -> 外接磁盘
- 外接磁盘 -> 外接磁盘
- 外接磁盘 -> 主磁盘
node.js 调用 sh 拷贝测试
- 小包速度测试
- 主磁盘 -> 主磁盘
- 主磁盘 -> 外接磁盘
- 外接磁盘 -> 外接磁盘
- 外接磁盘 -> 主磁盘
- 大包速度测试
- 主磁盘 -> 主磁盘
- 主磁盘 -> 外接磁盘
- 外接磁盘 -> 外接磁盘
- 外接磁盘 -> 主磁盘
scp 传输测试
- 小包速度测试
- 主磁盘 -> 主磁盘
- 主磁盘 -> 外接磁盘
- 外接磁盘 -> 外接磁盘
- 外接磁盘 -> 主磁盘
- 大包速度测试
- 主磁盘 -> 主磁盘
- 主磁盘 -> 外接磁盘
- 外接磁盘 -> 外接磁盘
- 外接磁盘 -> 主磁盘
rsync 拷贝测试
- 小包速度测试
- 主磁盘 -> 主磁盘
- 主磁盘 -> 外接磁盘
- 外接磁盘 -> 外接磁盘
- 外接磁盘 -> 主磁盘
- 大包速度测试
- 主磁盘 -> 主磁盘
- 主磁盘 -> 外接磁盘
- 外接磁盘 -> 外接磁盘
- 外接磁盘 -> 主磁盘
先 cp 再 unzip 测试
- 小包速度测试
- 主磁盘 -> 主磁盘
- 主磁盘 -> 外接磁盘
- 外接磁盘 -> 外接磁盘
- 外接磁盘 -> 主磁盘
- 大包速度测试
- 主磁盘 -> 主磁盘
- 主磁盘 -> 外接磁盘
- 外接磁盘 -> 外接磁盘
- 外接磁盘 -> 主磁盘
OSS 下载传输测试
- 小包速度测试
- OSS -> 主磁盘
- OSS -> 外接磁盘
- 大包速度测试
- OSS -> 主磁盘
- OSS -> 外接磁盘
【结论】
- 各种方式对包的操作均与磁盘吞吐量有紧密关系
- 目前可以看到 8v16g(ecs.hfc6.2xlarge)在各种方式下拷贝大包基本稳定在 30s 左右,经过测试阶段人工观察(iotop 工具),磁盘吞吐量也是达到了 ECS 自身的吞吐量瓶颈。
- 为了进一步验证 ESC 吞吐量瓶颈是否跟随 ECS 型号提高,我们测试了下 ecs.hfc6.3xlarge 型号,发现速度大幅提升,吞吐量也是达到了该 ECS 自身的吞吐量瓶颈。所以目前如果需要提升拷贝文件的速度,则需要提升 ECS 自身的型号,从而提升吞吐量瓶颈
- 外接磁盘和主磁盘之间的文件操作不会受到两块云盘带来的影响(速度和 单一磁盘内部操作一致)
经过测试之后,Xinstall服务速度进行再次优化,对我支持我们的用户,我们绝不对降低服务质量,无论从哪个角度看,都有义务保证Xinstall服务的高质量
随着Xinstall客户量的增加,同时也是Xinstall成为客户严格要求的对象,我们感受到了越来越重的责任,也会对自己要求越来越严格。对客户负责
网站所收集到的公开内容均来自于互联网或用户投稿,并不代表本站认同其观点,也不对网站内容的真实性负责,如有侵权行为请及时联系删除!