从我的测试,我得到大约500插入,200查询,400更新每秒。我不知道在什么我可以调整,以增加这些数字。

我已经阅读,其他人可以实现成千上万甚至数千刀片在他们的测试,这是远比我的测试。我不知道如果我失踪的一些基本的东西?

因此,这里的事实:

  • 我使用一个双赢的32位mongodb v2。0.3默认结构
  • Java司机(2.7.3)与春天的mongo、(我不力同步)
  • 这样做的组合插入和原子更像推、拉、 公司,dec,设置,
  • 和重复所有这些对于500k倍。
  • 目的是要模拟用户操作的喜欢插入和更新
  • 没有具体索引的定义,但是我认为默认情况下,会有始终是唯一的索引的身份证吗?
  • Java应用程序运行在日食IDE运行,在同一台机器它的服务器
  • H/W规格:核心i5,mem4G电脑上的边缘
  • 我注意到java过程大约需要280MB和稳定,在这些过程的循环

开始时间是:2012-03-08 21:50:16

和我监测使用mongostat,并在到达时间 22:05:10, 我终止我的未完成的应用程序。。而这里是最后输出的mongostat

insert  query update delete getmore command flushes mapped  vsize    res faults locked % idx miss %     qr|qw   ar|aw  netIn netOut  conn       time
   499    200    400      0       0     100       0  1023m  1.06g   581m    145      8.5          0       0|0     0|0   645k    97k     3   22:05:01
   503    201    403      0       0     102       0  1023m  1.06g   582m    154     10.7          0       0|0     0|1   651k    98k     3   22:05:02
   520    208    415      0       0     105       0  1023m  1.06g   582m    176     11.1          0       0|0     0|0   671k   101k     3   22:05:03
   504    202    403      0       0     102       0  1023m  1.06g   582m    167      7.2          0       0|0     0|0   651k    98k     3   22:05:04
   524    209    419      0       0     106       0  1023m  1.06g   582m    147      8.3          0       0|0     0|0   675k   102k     3   22:05:05
   534    213    428      0       0     107       0  1023m  1.06g   583m    176      7.4          0       0|0     0|0   690k   103k     3   22:05:06
   531    213    424      0       0     108       0  1023m  1.06g   584m    160      4.9          0       0|0     0|0   685k   104k     3   22:05:07
   533    213    427      0       0     107       0  1023m  1.06g   584m    164      6.9          0       0|0     0|0   689k   103k     3   22:05:08
   518    208    414      0       0     105       0  1023m  1.06g   585m    158      7.3          0       0|0     0|0   669k   101k     3   22:05:09
   521    208    417      0       0     105       0  1023m  1.06g   585m    154      4.7          0       0|0     0|0   673k   101k     3   22:05:10

然后我检查了我的插入数量:

> db.myCollection.find().size();
90575

这是一个例子我的文件插入,这也是更新等进程

> db.myCollection.findOne().pretty();
{
        "_id" : "b146189a-56a4-4035-8245-c4bd6dc2bd22",
        "something1" : "my class is cool !",
        "something2" : {
                "value" : "this is a statement blah blah",
                "name" : "myStatement"
        },
        "something3" : {
                "size" : {
                        "value" : 0,
                        "name" : "size"
                },
                "value" : [
                        "6810cb0c-fa3e-4ca9-8a27-8432f2d1e828",
                        "a8276d05-a796-4c43-bc74-edc06d074099"
                ],
                "name" : "myids"
        },
        "something4" : {
                "myattr" : {
                        "value" : "something",
                        "name" : "name"
                },
                "attr" : {
                        "content" : {
                                "value" : "another another body body content content",
                                "name" : "content"
                        },
                        "contentId" : "b146189a-56a4-4035-8245-c4bd6dc2bd22",
                        "name" : "something"
                },
                "subsubchildchild" : {
                        "size" : {
                                "value" : 0,
                                "name" : "size"
                        },
                        "value" : [ ],
                        "name" : "subBodies"
                },
                "myId" : "b146189a-56a4-4035-8245-c4bd6dc2bd22",
                "name" : "hiccups"
        },
        "something5" : {
                "value" : false,
                "name" : "hahaha"
        },
        "something6" : {
                "name" : "okay this is just a test"
        },
        "something7" : {
                "value" : false,
                "name" : "remove me !"
        },
        "something8" : {
                "size" : {
                        "value" : 0,
                        "name" : "size"
                },
                "value" : [ ],
                "name" : "guess what"
        },
        "something9" : {
                "size" : {
                        "value" : 0,
                        "name" : "anotherSize"
                },
                "value" : [ ],
                "name" : "tarantula"
        },
        "something10" : {
                "value" : 8,
                "name" : "my exam score"
        },
        "something11" : {
                "size" : {
                        "value" : 0,
                        "name" : "justAnotherSize"
                },
                "value" : [ ],
                "name" : "myReference"
        },
        "something12" : {
                "size" : {
                        "value" : 0,
                        "name" : "size"
                },
                "value" : [ ],
                "name" : "myOtherReference"
        },
        "something13" : {
                "value" : "8b78fff0-50f5-4992-9972-89f9d944fee7",
                "name" : "user"
        },
        "something14" : {
                "dateTime" : "2012-03-08 21:50:17.480000000"
        },
        "something15" : {
                "value" : false,
                "name" : "lovely"
        }
}

这里是我的数据库统计:

> db.stats();
{
        "db" : "qa",
        "collections" : 7,
        "objects" : 815197,
        "avgObjSize" : 622.2093211824872,
        "dataSize" : 507223172,
        "storageSize" : 610770944,
        "numExtents" : 57,
        "indexes" : 5,
        "indexSize" : 64197952,
        "fileSize" : 1056702464,
        "nsSizeMB" : 16,
        "ok" : 1
}

还有另外一个问题从好奇..从我的主要收集大小,其具有约90k记录和其他非实质性的收藏品,这不应该在大尺寸的,是有合理的周围有1TB的fileSize在这种情况下?有什么我可以做的来帮助降低我的filesize?

请分享你的想法。

有帮助吗?

解决方案

你似乎越来越多的故障 mongostat.任何主意,为什么?

这样做的组合插入和原子更像推、拉,inc,dec,设置

你是怎么发出这些更新?通过 _id?

我已经阅读,其他人可以实现成千上万甚至数千刀片在他们的测试,这是远比我的测试。我不知道如果我失踪的一些基本的东西?

根据 mongostat 你只有3连接活性和你的锁%是只有约10%。

  • 你是多线程您的投入?
  • 你毁了这一切对相同的计算机?
  • 是如何系统IO?
  • 是你做的 WriteConcern.Safe?

所有这些考虑因素可能会影响你的吞吐量。

它是合理的,有大约1TB的fileSize在这种情况下?

基于你的 db.stats(), 你只有大约600MB的磁盘中的使用。

"storageSize" : 610770944 // = 610,770,944

你平均大小的对象是622字节,但你必须815,197对象,不90k文件的要求。

有什么我可以做的来帮助降低我的filesize?

是的,降低大小的钥匙式文件。例如:

"something1" : "my class is cool !"  => ~28 bytes
"s1": "my class is cool !"           => ~20 bytes

确保你是正确的储存缩短的名称和让你的数据访问的框架做解除映这些更合理的名称。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top