MongoDB 和 PolarDB 加载数据数据测试的情况记录报告

liuwei 创建于 2018-07-07 22:34;更新于 2018-08-13 08:31

mongodb 和 polardb 加载数据数据测试的情况记录报告

1、mongodb 集群的配置情况

1.1、mongos

2 个 mongos 每个的配置为:2 核 4 GB

1.2、shards

总共有 8 个 shard,每个 shard 配置为 4 核 8 GB

2、加载的表的情况

2.1、表的数据量

数据量:20 亿左右

2.2、表结构

字段字段类型字段含义
didstring数盟 1 代 ID
mac__addrstringMAC 地址
imeistring国际移动设备身份码的缩写
bluetoothstring蓝牙 MAC
serialstring序列号
sysbootidstring系统 ID 每次重启机器会变
android__idstringAndroid id
ro_product_manufacturerstring厂商小写
manufacturerstring厂商大写
ro_product_brandstring品牌
brandstring品牌
ro_product_modelstring机型
modelstring机型
iccidstring集成电路卡识别码
imsistring国际移动用户识别码
gsm_operator_numericstring运营商
rootstring设备是否 root
cpu_abistring主板信息
ro_build_fingerprintstringrom 信息
create_datestring设备首次上报时间
recent_report_datestring最新的上报时间
tmp_unique_idstring临时唯一 ID
rule1bigintMAC 厂商合规标记
rule2bigintIMEI 厂商合规标记
imsi_rulebigintimsi iccid 运营商合规,-1 不可用;1 合规,0 不合规
manu_rulebigint厂商大小写合规,-1 不可用;1 合规,0 不合规
ro_manu_rulebigintro product manufacturer 合规标记
mac_rulebigintMAC 合规标记
sd_rulebigintsd_cid 合规标记
bd_rulebigintbd_deviceid 合规标记
imei_rulebigintIMEI 合规标记
blue_rulebigint蓝牙 MAC 合规标记
serial_rulebigintserial 合规标记
sys_rulebigintsys boot id 合规标记
id2string2 代 id
typestring设备状态:same,not_same,un_judge
statusstring设备标记,碰撞,无法判清,非多发非碰撞,多发碰撞,多发等
id2_onlinestring线上二代 ID

2.3、表的索引

  • 单字段:
 
  1. did_1
  2. did_2_change
  3. android_id
  • 组合索引
 
  1. mac,imei
  2. mac,bluetooth
  3. imei,bluetooth
  4. imei,sys_boot_id
  5. bluetooth,sys_boot_id
  6. sys_boot_id,mac

分片索引:

 
  1. did_2

3、入数的设置

条目项
批加载每批加载 1000 条记录
并发数(线程数)10
预分片数30000

3.1、入数随着时间变化的情况

从上图可以看出,第一个小时入数的速度还是很快的,在前 4 个小时的下降是最快的,前 5-15 个小时比较快的下降,15 个小时以后下保持一个比较平稳的状态,下降的速度很缓慢了。cpu 最高 80% 左右,内存最高 60% 左右,因为有线上正式业务,没把所有的资源都用到极限。

4、polardb 数据库的介绍(只测试 35 分钟左右,因速度慢的缘故)

4.1、4 核 32 GB 情况的测试,分区情况是用 key 的方式。

  • 10 线程、每批 1000 条,每 5 分钟的入数情况,
时间记录数 (单位:万)
第 1 个五分钟130
第 2 个五分钟110
第 3 个五分钟120
第 4 个五分钟80
第 5 个五分钟95
第 6 个五分钟77
第 7 个五分钟81

  • 20 线程、每批 1000 条
时间记录数 (单位:万)
第 1 个五分钟178
第 2 个五分钟150
第 3 个五分钟119
第 4 个五分钟103
第 5 个五分钟100
第 6 个五分钟91
第 7 个五分钟87

从以上可以看出,通过增加并发数据是没办法提供加载速度的,阿里云反馈,通过监控指标 cpu 已经到达 400% 了,后通过添加 cpu 来提高集群的能力

4.2、20 核情况的测试,分区情况是用 key 的方式。

  • 一种是通过 insert Many 的方式

    insert into table_name (field1,field2) vaues (value1_1,value1_2),(value2_1,value2_2) 的方式。

时间每小时插入的数据量(单位:万)
第 1 个小时2302
第 2 个小时1833
第 3 个小时2025
第 4 个小时1804
第 5 个小时1668
第 6 个小时1609
第 7 个小时1526
第 8 个小时1496
第 9 个小时1467
第 10 个小时1445
第 11 个小时1417
第 12 个小时1384
第 13 个小时1352
第 14 个小时1316
第 15 个小时1285

  • 另一种是同 mysql api 的 addBatch 方式
时间每小时插入的数据量(单位:万)
第 1 个小时2711
第 2 个小时1748
第 3 个小时1652
第 4 个小时1592
第 5 个小时1546
第 6 个小时1468
第 7 个小时1425
第 8 个小时1383
第 9 个小时1343
第 10 个小时1309
第 11 个小时1296
第 12 个小时1284
第 13 个小时1283
第 14 个小时1241
第 15 个小时1298
第 16 个小时1209
第 17 个小时1031

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值