性能测试文档
- 格式:doc
- 大小:2.27 MB
- 文档页数:49
性能测试高原2014/6/6 1环境说明集群采用三个分片,每个分片有三个副本。
集群具体配置情况如表1.1所示:表1.1IP10.6.0.246 10.6.0.248 10.6.0.247分片和副本片名端口rep1 10001rep2 10002rep3 10003片名端口rep1 10001rep2 10002rep3 10003片名端口rep1 10001rep2 10002rep3 10003路由节点mongos 端口10000 datalog配置节点ConfigServer端口10000 configSVRlog测试模拟了目录表F_MP_READ_CURVE库的生成插入过程,选用的不同的分块策略记录了插入和平衡的整个过程。
数据量以2014年5月21日的数据量为准(稍有增加)。
2013年5月21日F_MP_READ_CURVE库的实际情况如表1.2所示:表1.2 F_MP_READ_CURVE库实际状况表数据库名称集合名称块数量集合数量F_MP_READ_CURVE_20140521 E_MP_READ_CURVE_10000530_20140521 6 322621 E_MP_READ_CURVE_10000531_20140521 10 824171 E_MP_READ_CURVE_10000534_20140521 13 1351503 E_MP_READ_CURVE_10000543_20140521 4 299681在实际生产中,库中的四个集合分别由四个用户生成,在试验中采用了四个线程分别生成这四个集合,四个集合的命名为thread1、thread2、thread3、thread4分别对应了实际生产中的四个集合。
插入的数据量在实际情况的基础上稍作增加,分别为323000、825000、1352000、300000。
2 分析手段简述我编写了一个监控程序,可以监控从开始插入数据到数据插入完成一直到分片平衡完成整个阶段MongoDB的各项指标,并把监控结果输出到csv文件中。
每次插入并平衡完成后,可以通过分析csv文件研究整个插入过程的情况。
监控程序监控的指标包括:1、整个库每秒的写入量(该结果每秒监控一次并记录下来)。
2、整个库的块分布情况(每4秒监控一次并记录)。
3、整个库的数据分布情况(每4秒监控一次并记录)。
4、整个库的数据分布比例(每4秒监控一次并记录)。
5、每个集合的块分布情况(每4秒监控一次并记录)。
6、每个集合的数据分布情况(每4秒监控一次并记录)。
7、每个集合的数据分布比例(每4秒监控一次并记录)。
实验主要是通过变化块的大小和分块的策略,记录不同的插入和平衡过程。
通过分析这些记录得出结果。
3 实验数据3.1 设置块大小为64MB时3.1.1 库的监控情况写入速度:写入总共用时21.28min平均写入速度2192.6条/秒块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个)27 27 24 数据(条)1406728968339936518占总数据比例(%)42.4829.2428.283.1.2 集合thread1的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个) 5 5 4 数据(条)13354111694299596占总数据比例(%)38.1533.428.453.1.3 集合thread2的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个)7 7 7 数据(条)539000271852294061占总数据比例(%)48.7824.626.613.1.4 集合thread3的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个)10 10 9 数据(条)613260481686442463占总数据比例(%)39.8931.3328.783.1.5 集合thread4的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个) 5 5 4 数据(条)12057897846100385占总数据比例(%)37.8230.6931.493.2 设置块大小为128MB时3.2.1 库的监控情况写入速度:写入总共用时18.55min平均写入速度2515.7条/秒块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个)21 19 18 数据(条)14245138729241003513占总数据比例(%)43.1526.4430.43.2.2 集合thread1的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个) 4 3 3 数据(条)11330311043499262占总数据比例(%)35.0834.1930.73 3.2.3 集合thread2的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3块(个) 6 6 6 数据(条)240285249946334768占总数据比例(%)29.1330.340.583.2.4 集合thread3的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个)7 7 6 数据(条)944787429356478725占总数据比例(%)50.9923.1725.843.2.5 集合thread4的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个) 4 3 3 数据(条)1260798317590745占总数据比例(%)42.0327.7330.253.3 设置块大小为256MB时3.2.1 库的监控情况写入速度:写入总共用时20.31min平均写入速度2296.9条/秒块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个)14 12 10数据(条)11573791092489906543占总数据比例(%)36.6734.6128.723.2.2 集合thread1的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个) 3 2 2 数据(条)86890120475115635占总数据比例(%)26.937.335.83.2.3 集合thread2的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个) 4 3 3 数据(条)197356311037316606占总数据比例(%)23.9237.738.383.2.4 集合thread3的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个) 4 4 3 数据(条)751009587403368669占总数据比例(%)43.9934.4121.6 3.2.5 集合thread4的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3块(个) 3 3 2 数据(条)12081973561105620占总数据比例(%)40.2724.5235.213.4 设置块大小为512MB时3.2.1 库的监控情况写入速度:写入总共用时20.11min平均写入速度2319.8条/秒块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个)9 8 8数据(条)16303258500401081147占总数据比例(%)45.7823.8730.363.2.2 集合thread1的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个) 1 1 1 数据(条)13871352184235占总数据比例(%)42.950.0257.043.2.3 集合thread2的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个) 3 3 3 数据(条)424370234195364756占总数据比例(%)41.4722.8935.643.2.4 集合thread3的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个) 4 3 3 数据(条)1067209484081363924占总数据比例(%)55.7225.2819 3.2.5 集合thread4的监控情况块和数据的平衡情况:最终平衡结果:项目分片1 分片2 分片3 块(个) 1 1 1 数据(条)82131699168219占总数据比例(%)0.0343.956.073.5 采用预分块策略时3.5.1 插入数据前对空块的平衡迁移监控3.5.1 对平衡后的预分块集合插入数据过程的监控3.5.1.1 库的监控情况写入速度:写入总共用时21.16min平均写入速度2204.7条/秒块和数据的平衡情况:平衡结果:项目分片1 分片2 分片3 块(个)176 176 172 数据(条)944631936345919057占总数据比例(%)33.7433.4432.823.5.1.2 集合thread1的监控情况块和数据的平衡情况:平衡结果:项目分片1 分片2 分片3块(个)44 44 43 数据(条)109024107823106153占总数据比例(%)33.7533.3832.863.5.1.3 集合thread2的监控情况块和数据的平衡情况:平衡结果:项目分片1 分片2 分片3块(个)44 44 43 数据(条)278246276231270522占总数据比例(%)33.7333.4832.793.5.1.4 集合thread3的监控情况块和数据的平衡情况:平衡结果:项目分片1 分片2 分片3块(个)44 44 43 数据(条)456593451912443490占总数据比例(%)33.7733.4332.83.5.1.5 集合thread4的监控情况块和数据的平衡情况:平衡结果:项目分片1 分片2 分片3块(个)44 44 43数据(条)10075510036698879占总数据比例(%)33.5833.4632.964 实验分析4.1库写入速度比较项目64MB 128MB 256MB 512MB 预分块(131个)写入总用时(min)21.28 18.55 20.31 20.11 21.16平均速度(条/秒)2192.6 2515.7 2296.9 2319.8 2204.7由上表容易看出,对于F_MP_READ_CURVE_20140521这个库而言,当设置块的大小为128MB是,写入速度最快。
4.2库的平衡结果的比较表4.2-1数据块的平衡情况:分片64MB 128MB 256MB 512MB 预分块Rep1(分片1)27 21 14 9 176Rep2(分片2)27 19 12 8 176Rep3(分片3)24 18 10 8 172表4.2-2数据的平衡情况分片64MB 128MB 256MB 512MB 预分块Rep1(分片1)1406728 1424513 1157379 1630352 944631Rep2(分片2)968339 872924 1092489 850040 936345Rep3(分片3)936518 1003513 906543 1081147 919057两两片之间平313473 367726 167224 520208 17049均数据量差距表4.2-3数据的分部比例分片64MB 128MB 256MB 512MB 预分块Rep1(分片1)42.48% 43.15% 36.67% 45.78% 33.74%Rep2(分片2)29.24% 26.44% 34.61% 23.87% 33.44%Rep3(分片3)28.28% 30.4% 28.72% 30.36% 32.82%两两片之间平9.47% 11.14% 5.3% 14.6% 0.61%均数据量差距比较表4.2-1、表4.2-2和表4.2-3容易看出,自动分片时,选择256MB的块大小时,平衡效果最好。