-
Type:
Question
-
Resolution: Cannot Reproduce
-
Priority:
Major - P3
-
None
-
Affects Version/s: 2.4.0
-
Component/s: Performance
-
None
-
Environment:Linux hz166-97 2.6.38-2-amd64
Debian6.0
2 MongoDB test cluster. each cluster composed of 3 shards.
One cluster deployed MongoDB2.4 and the other 2.2.3.
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Hi,
I installed MongoDB2.4 recently and found that the insert performance is much more
pool than it was in 2.2.3.
Please help to try to find the reason.
Test schema:
Load 330W records from a mysql table and insert them into mongodb cluster, mark down
the insert time.
2.4 cluster total insert time: 630 seconds
2.2 cluster total insert time: 110 seconds
For higher insert speed, I pre split the collection into 60 chunks, each node contains
20 chunks. The shard key is (second of timestamp) << 32 + timestamp.
And I found that the io load of 2.4 is higher than 2.2:
iostax -m result for the test period(of one node):
2.4 cluster:
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn sda 112.22 0.00 5.35 0 3371
2.2 cluster:
Device: tps MB_read/s MB_wrtn/s MB_read MB_wrtn sda 75.69 0.00 9.55 0 2386
2.4 collection stats:
mongos> db.gm_item.stats()
{
"sharded" : true,
"ns" : "tw2_log_10148.gm_item",
"count" : 3252213,
"numExtents" : 48,
"size" : 1907352352,
"storageSize" : 2203701248,
"totalIndexSize" : 974219456,
"indexSizes" : {
"_id_" : 105543984,
"_sk_1" : 160118784,
"dst_item_uuid_ex_1" : 82315968,
"dst_role_1" : 150765440,
"op_nuid_1" : 122656352,
"src_item_uuid_ex_1" : 75987744,
"src_role_1" : 186036704,
"t_when_1" : 90794480
},
"avgObjSize" : 586.4783001605368,
"nindexes" : 8,
"nchunks" : 60,
"shards" : {
"mds1" : {
"ns" : "tw2_log_10148.gm_item",
"count" : 1085111,
"size" : 636530928,
"avgObjSize" : 586.6044377026866,
"storageSize" : 786976768,
"numExtents" : 16,
"nindexes" : 8,
"lastExtentSize" : 210907136,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 331463216,
"indexSizes" : {
"_id_" : 35214032,
"_sk_1" : 53389280,
"t_when_1" : 30292080,
"op_nuid_1" : 40863648,
"src_role_1" : 62121248,
"src_item_uuid_ex_1" : 25370128,
"dst_role_1" : 56864080,
"dst_item_uuid_ex_1" : 27348720
},
"ok" : 1
},
"mds2" : {
"ns" : "tw2_log_10148.gm_item",
"count" : 1081248,
"size" : 633920176,
"avgObjSize" : 586.2856402971381,
"storageSize" : 708362240,
"numExtents" : 16,
"nindexes" : 8,
"lastExtentSize" : 189837312,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 310622592,
"indexSizes" : {
"_id_" : 35091392,
"_sk_1" : 53242112,
"t_when_1" : 30185792,
"op_nuid_1" : 40814592,
"src_role_1" : 61826912,
"src_item_uuid_ex_1" : 25092144,
"dst_role_1" : 36988224,
"dst_item_uuid_ex_1" : 27381424
},
"ok" : 1
},
"mds3" : {
"ns" : "tw2_log_10148.gm_item",
"count" : 1085854,
"size" : 636901248,
"avgObjSize" : 586.5440915629541,
"storageSize" : 708362240,
"numExtents" : 16,
"nindexes" : 8,
"lastExtentSize" : 189837312,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 332133648,
"indexSizes" : {
"_id_" : 35238560,
"_sk_1" : 53487392,
"t_when_1" : 30316608,
"op_nuid_1" : 40978112,
"src_role_1" : 62088544,
"src_item_uuid_ex_1" : 25525472,
"dst_role_1" : 56913136,
"dst_item_uuid_ex_1" : 27585824
},
"ok" : 1
}
},
"ok" : 1
}
2.2 collection stats:
mongos> db.gm_item.stats()
{
"sharded" : true,
"ns" : "tw2_log_10148.gm_item",
"count" : 3252213,
"numExtents" : 48,
"size" : 1814262528,
"storageSize" : 1888837632,
"totalIndexSize" : 1123300640,
"indexSizes" : {
"_id_" : 105543984,
"_sk_1" : 158892384,
"dst_item_uuid_ex_1" : 103925136,
"dst_role_1" : 170216144,
"op_nuid_1" : 174484016,
"src_item_uuid_ex_1" : 74916688,
"src_role_1" : 186363744,
"t_when_1" : 148958544
},
"avgObjSize" : 557.8547678150231,
"nindexes" : 8,
"nchunks" : 60,
"shards" : {
"mds1" : {
"ns" : "tw2_log_10148.gm_item",
"count" : 1085111,
"size" : 605454048,
"avgObjSize" : 557.9650819132789,
"storageSize" : 629612544,
"numExtents" : 16,
"nindexes" : 8,
"lastExtentSize" : 168730624,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 374951360,
"indexSizes" : {
"_id_" : 35214032,
"_sk_1" : 53397456,
"t_when_1" : 49775488,
"op_nuid_1" : 58082304,
"src_role_1" : 61974080,
"src_item_uuid_ex_1" : 25116672,
"dst_role_1" : 56815024,
"dst_item_uuid_ex_1" : 34576304
},
"ok" : 1
},
"mds3" : {
"ns" : "tw2_log_10148.gm_item",
"count" : 1081248,
"size" : 602956616,
"avgObjSize" : 557.6487688300926,
"storageSize" : 629612544,
"numExtents" : 16,
"nindexes" : 8,
"lastExtentSize" : 168730624,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 373079056,
"indexSizes" : {
"_id_" : 35091392,
"_sk_1" : 52023888,
"t_when_1" : 49513856,
"op_nuid_1" : 58433872,
"src_role_1" : 62137600,
"src_item_uuid_ex_1" : 24797808,
"dst_role_1" : 56528864,
"dst_item_uuid_ex_1" : 34551776
},
"ok" : 1
},
"mds4" : {
"ns" : "tw2_log_10148.gm_item",
"count" : 1085854,
"size" : 605851864,
"avgObjSize" : 557.9496543734241,
"storageSize" : 629612544,
"numExtents" : 16,
"nindexes" : 8,
"lastExtentSize" : 168730624,
"paddingFactor" : 1,
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 375270224,
"indexSizes" : {
"_id_" : 35238560,
"_sk_1" : 53471040,
"t_when_1" : 49669200,
"op_nuid_1" : 57967840,
"src_role_1" : 62252064,
"src_item_uuid_ex_1" : 25002208,
"dst_role_1" : 56872256,
"dst_item_uuid_ex_1" : 34797056
},
"ok" : 1
}
},
"ok" : 1
}
I also tested the hashed shard plan. (the record insert timestamp is used to be a shard key). The insert performance is more terrible. It took 1100 seconds to insert same records.