`
豉汁凤爪
  • 浏览: 5341 次
文章分类
社区版块
存档分类
最新评论

MongoDB集群插入数据测试

阅读更多

 上一篇建好的MongoDB集群中插入数据,看看性能如何。

向test数据库的test集合插入五百万数据

用时约11分钟

查看集合状态

 

  1. mongos> db.test.stats(1024) 
  2.         "sharded" : true, 
  3.         "ns" : "test.test", 
  4.         "count" : 5000000, 
  5.         "numExtents" : 61, 
  6.         "size" : 273436, 
  7.         "storageSize" : 839500, 
  8.         "totalIndexSize" : 158685, 
  9.         "indexSizes" : { 
  10.                 "_id_" : 158685 
  11.         }, 
  12.         "avgObjSize" : 0.0546872, 
  13.         "nindexes" : 1, 
  14.         "nchunks" : 29, 
  15.         "shards" : { 
  16.                 "shard1" : { 
  17.                         "ns" : "test.test", 
  18.                         "count" : 0, 
  19.                         "size" : 0, 
  20.                         "storageSize" : 18460, 
  21.                         "numExtents" : 8, 
  22.                         "nindexes" : 1, 
  23.                         "lastExtentSize" : 7468, 
  24.                         "paddingFactor" : 1, 
  25.                         "systemFlags" : 1, 
  26.                         "userFlags" : 0, 
  27.                         "totalIndexSize" : 7, 
  28.                         "indexSizes" : { 
  29.                                 "_id_" : 7 
  30.                         }, 
  31.                         "ok" : 1 
  32.                 }, 
  33.                 "shard2" : { 
  34.                         "ns" : "test.test", 
  35.                         "count" : 1256764, 
  36.                         "size" : 68729, 
  37.                         "avgObjSize" : 0.054687276210967216, 
  38.                         "storageSize" : 121032, 
  39.                         "numExtents" : 11, 
  40.                         "nindexes" : 1, 
  41.                         "lastExtentSize" : 36744, 
  42.                         "paddingFactor" : 1, 
  43.                         "systemFlags" : 1, 
  44.                         "userFlags" : 0, 
  45.                         "totalIndexSize" : 39834, 
  46.                         "indexSizes" : { 
  47.                                 "_id_" : 39834 
  48.                         }, 
  49.                         "ok" : 1 
  50.                 }, 
  51.                 "shard3" : { 
  52.                         "ns" : "test.test", 
  53.                         "count" : 3642282, 
  54.                         "size" : 199187, 
  55.                         "avgObjSize" : 0.05468741849203329, 
  56.                         "storageSize" : 328024, 
  57.                         "numExtents" : 14, 
  58.                         "nindexes" : 1, 
  59.                         "lastExtentSize" : 90412, 
  60.                         "paddingFactor" : 1, 
  61.                         "systemFlags" : 1, 
  62.                         "userFlags" : 0, 
  63.                         "totalIndexSize" : 115621, 
  64.                         "indexSizes" : { 
  65.                                 "_id_" : 115621 
  66.                         }, 
  67.                         "ok" : 1 
  68.                 }, 
  69.                 "shard4" : { 
  70.                         "ns" : "test.test", 
  71.                         "count" : 100954, 
  72.                         "size" : 5520, 
  73.                         "avgObjSize" : 0.05467836836579036, 
  74.                         "storageSize" : 21980, 
  75.                         "numExtents" : 7, 
  76.                         "nindexes" : 1, 
  77.                         "lastExtentSize" : 11060, 
  78.                         "paddingFactor" : 1, 
  79.                         "systemFlags" : 1, 
  80.                         "userFlags" : 0, 
  81.                         "totalIndexSize" : 3209, 
  82.                         "indexSizes" : { 
  83.                                 "_id_" : 3209 
  84.                         }, 
  85.                         "ok" : 1 
  86.                 }, 
  87.                 "shard5" : { 
  88.                         "ns" : "test.test", 
  89.                         "count" : 0, 
  90.                         "size" : 0, 
  91.                         "storageSize" : 328024, 
  92.                         "numExtents" : 14, 
  93.                         "nindexes" : 1, 
  94.                         "lastExtentSize" : 90412, 
  95.                         "paddingFactor" : 1, 
  96.                         "systemFlags" : 1, 
  97.                         "userFlags" : 0, 
  98.                         "totalIndexSize" : 7, 
  99.                         "indexSizes" : { 
  100.                                 "_id_" : 7 
  101.                         }, 
  102.                         "ok" : 1 
  103.                 }, 
  104.                 "shard6" : { 
  105.                         "ns" : "test.test", 
  106.                         "count" : 0, 
  107.                         "size" : 0, 
  108.                         "storageSize" : 21980, 
  109.                         "numExtents" : 7, 
  110.                         "nindexes" : 1, 
  111.                         "lastExtentSize" : 11060, 
  112.                         "paddingFactor" : 1, 
  113.                         "systemFlags" : 1, 
  114.                         "userFlags" : 0, 
  115.                         "totalIndexSize" : 7, 
  116.                         "indexSizes" : { 
  117.                                 "_id_" : 7 
  118.                         }, 
  119.                         "ok" : 1 
  120.                 } 
  121.         }, 
  122.         "ok" : 1 

向test数据库的test集合插入一千万数据

用时约33分钟

查看集合状态

 

  1. mongos> db.test.stats(1024) 
  2.         "sharded" : true, 
  3.         "ns" : "test.test", 
  4.         "count" : 10000000, 
  5.         "numExtents" : 81, 
  6.         "size" : 546873, 
  7.         "storageSize" : 1542568, 
  8.         "totalIndexSize" : 316959, 
  9.         "indexSizes" : { 
  10.                 "_id_" : 316959 
  11.         }, 
  12.         "avgObjSize" : 0.0546873, 
  13.         "nindexes" : 1, 
  14.         "nchunks" : 39, 
  15.         "shards" : { 
  16.                 "shard1" : { 
  17.                         "ns" : "test.test", 
  18.                         "count" : 3231299, 
  19.                         "size" : 176711, 
  20.                         "avgObjSize" : 0.054687294490543895, 
  21.                         "storageSize" : 307628, 
  22.                         "numExtents" : 16, 
  23.                         "nindexes" : 1, 
  24.                         "lastExtentSize" : 82448, 
  25.                         "paddingFactor" : 1, 
  26.                         "systemFlags" : 1, 
  27.                         "userFlags" : 0, 
  28.                         "totalIndexSize" : 102391, 
  29.                         "indexSizes" : { 
  30.                                 "_id_" : 102391 
  31.                         }, 
  32.                         "ok" : 1 
  33.                 }, 
  34.                 "shard2" : { 
  35.                         "ns" : "test.test", 
  36.                         "count" : 2710175, 
  37.                         "size" : 148212, 
  38.                         "avgObjSize" : 0.05468724344368906, 
  39.                         "storageSize" : 237612, 
  40.                         "numExtents" : 13, 
  41.                         "nindexes" : 1, 
  42.                         "lastExtentSize" : 66972, 
  43.                         "paddingFactor" : 1, 
  44.                         "systemFlags" : 1, 
  45.                         "userFlags" : 0, 
  46.                         "totalIndexSize" : 85935, 
  47.                         "indexSizes" : { 
  48.                                 "_id_" : 85935 
  49.                         }, 
  50.                         "ok" : 1 
  51.                 }, 
  52.                 "shard3" : { 
  53.                         "ns" : "test.test", 
  54.                         "count" : 0, 
  55.                         "size" : 0, 
  56.                         "storageSize" : 328024, 
  57.                         "numExtents" : 14, 
  58.                         "nindexes" : 1, 
  59.                         "lastExtentSize" : 90412, 
  60.                         "paddingFactor" : 1, 
  61.                         "systemFlags" : 1, 
  62.                         "userFlags" : 0, 
  63.                         "totalIndexSize" : 7, 
  64.                         "indexSizes" : { 
  65.                                 "_id_" : 7 
  66.                         }, 
  67.                         "ok" : 1 
  68.                 }, 
  69.                 "shard4" : { 
  70.                         "ns" : "test.test", 
  71.                         "count" : 1936150, 
  72.                         "size" : 105883, 
  73.                         "avgObjSize" : 0.05468739508819048, 
  74.                         "storageSize" : 170640, 
  75.                         "numExtents" : 12, 
  76.                         "nindexes" : 1, 
  77.                         "lastExtentSize" : 49608, 
  78.                         "paddingFactor" : 1, 
  79.                         "systemFlags" : 1, 
  80.                         "userFlags" : 0, 
  81.                         "totalIndexSize" : 61359, 
  82.                         "indexSizes" : { 
  83.                                 "_id_" : 61359 
  84.                         }, 
  85.                         "ok" : 1 
  86.                 }, 
  87.                 "shard5" : { 
  88.                         "ns" : "test.test", 
  89.                         "count" : 0, 
  90.                         "size" : 0, 
  91.                         "storageSize" : 328024, 
  92.                         "numExtents" : 14, 
  93.                         "nindexes" : 1, 
  94.                         "lastExtentSize" : 90412, 
  95.                         "paddingFactor" : 1, 
  96.                         "systemFlags" : 1, 
  97.                         "userFlags" : 0, 
  98.                         "totalIndexSize" : 7, 
  99.                         "indexSizes" : { 
  100.                                 "_id_" : 7 
  101.                         }, 
  102.                         "ok" : 1 
  103.                 }, 
  104.                 "shard6" : { 
  105.                         "ns" : "test.test", 
  106.                         "count" : 2122376, 
  107.                         "size" : 116067, 
  108.                         "avgObjSize" : 0.05468729386310437, 
  109.                         "storageSize" : 170640, 
  110.                         "numExtents" : 12, 
  111.                         "nindexes" : 1, 
  112.                         "lastExtentSize" : 49608, 
  113.                         "paddingFactor" : 1, 
  114.                         "systemFlags" : 1, 
  115.                         "userFlags" : 0, 
  116.                         "totalIndexSize" : 67260, 
  117.                         "indexSizes" : { 
  118.                                 "_id_" : 67260 
  119.                         }, 
  120.                         "ok" : 1 
  121.                 } 
  122.         }, 
  123.         "ok" : 1 

 

解释一下查看集合状态的db.colletion.stats(scale)方法

 

db.collection.stats()返回值都是按照字节处理

你可以设定比例参数scale的值来调整,例如scale设为1024,则返回结果某些值按KB处理

 

返回值各字段解释:

sharded:是否可分片

ns:命名空间,按照格式[database].[collection]

count:该集合中的对象或文档数

numExtents:连续的数据文件区域总数。

Size:集合中数据的大小scale值有影响】

storageSize:分配给该集合的文档存储空间,该值不会减少。【scale值有影响

totalIndexSize:所有索引的总大小。scale值有影响】

indexSizes:该值表示集合中所有存在的索引。scale值有影响】

avgObjSize:集合中对象的平均大小。scale值有影响】

nindexes:集合的索引数,所有集合至少有一个索引在_id字段。

nchunks:集合分块数。

lastExtentSize:最近分配的扩展大小。scale值有影响】

paddingFactor:插入的时候在每个文档末尾增加的空间。这提供一个很小的额外磁盘空间让文档有些微的增长而不需要移动文档。mongod会自动计算该值

systemFlags2.2版新特性。反映该集合内部服务选项的标志。如1代表在_id字段有索引。

userFlags2.2版新特性。用户设置该集合的标志。在2.2版中唯一的用户标志是 usePowerOf2Sizes。如果usePowerOf2Sizes是可用的,userFlags就是1,其余都是0.

 

 

查看各复制集情况

shard1复制集

 

  1.         "set" : "shard1", 
  2.         "date" : ISODate("2013-01-13T14:27:13Z"), 
  3.         "myState" : 1, 
  4.         "members" : [ 
  5.                 { 
  6.                         "_id" : 1, 
  7.                         "name" : "10.50.9.12:27017", 
  8.                         "health" : 1, 
  9.                         "state" : 1, 
  10.                         "stateStr" : "PRIMARY", 
  11.                         "uptime" : 99645, 
  12.                         "optime" : Timestamp(1358086947000, 1), 
  13.                         "optimeDate" : ISODate("2013-01-13T14:22:27Z"), 
  14.                         "self" : true 
  15.                 }, 
  16.                 { 
  17.                         "_id" : 2, 
  18.                         "name" : "10.50.9.13:27018", 
  19.                         "health" : 1, 
  20.                         "state" : 2, 
  21.                         "stateStr" : "SECONDARY", 
  22.                         "uptime" : 99643, 
  23.                         "optime" : Timestamp(1358086947000, 1), 
  24.                         "optimeDate" : ISODate("2013-01-13T14:22:27Z"), 
  25.                         "lastHeartbeat" : ISODate("2013-01-13T14:27:12Z"), 
  26.                         "pingMs" : 0 
  27.                 }, 
  28.                 { 
  29.                         "_id" : 3, 
  30.                         "name" : "10.50.9.13:27019", 
  31.                         "health" : 1, 
  32.                         "state" : 2, 
  33.                         "stateStr" : "SECONDARY", 
  34.                         "uptime" : 99643, 
  35.                         "optime" : Timestamp(1358086947000, 1), 
  36.                         "optimeDate" : ISODate("2013-01-13T14:22:27Z"), 
  37.                         "lastHeartbeat" : ISODate("2013-01-13T14:27:11Z"), 
  38.                         "pingMs" : 0 
  39.                 } 
  40.         ], 
  41.         "ok" : 1 

 

【太多字符,差不多的内容就不发了哎╮(╯▽╰)╭】

 

各字段解释:

 

 

set:复制集名

date:当前的ISO时间

myState:表明当前复制集状态,0~10分别代表

编号状态

0启动,阶段(分配配置)

1

2次要

3还原(初始同步,后回滚,停滞成员)

4严重错误

5启动,阶段(分叉线程)

6未知状态(副本集从未连接到成员)

7仲裁程序

8死机

9回滚

10已删除

 

syncingTo:只会在副节点出现,保存正在同步的实例的地址。

members:保存复制集中的每个成员信息。

name:该成员所在的地址。

health:健康状态,1表明正在运行,0表明不运行。

State

编号状态

0启动,阶段(分配配置)

1

2次要

3还原(初始同步,后回滚,停滞成员)

4严重错误

5启动,阶段(分叉线程)

6未知状态(副本集从未连接到成员)

7仲裁程序

8死机

9回滚

10已删除

 

stateStr:描述成员状态的字符串。

Uptime:启动至今的秒数。

Optime:包含最近操作日志中该成员应用了的操作信息。

optimeDate:最近该成员访问操作日志的时间。

lastHeartbeat:最近从该成员得到的心跳信息的时间。

pingMs:往返包在远程成员和本地实例的来回时间(毫秒)。

Self:该查看复制集信息文档存储在当前mongod实例,值为true

 

数据插入脚本

可直接在mongo下执行下列javascript代码

 

插入五百万数据

for(var i=0; i<5000000; i++){

db.test.insert({name : mongodb_test + i,seq : i})

}

插入一千万数据

for(var i=0; i<10000000; i++){

db.test.insert({name : mongodb_test + i,seq : i})

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics