0

我将 mongodb 用于我们的 Application 。我在db.setProfilingLevel(1,25)mongo shell 上运行以识别来自system.profilecollection 的慢查询。

我观察到读取操作很快,但更新操作很慢

这是我的 mongostat 的示例

insert/s query/s update/s delete/s getmore/s command/s flushes/s mapped  vsize    res faults/s locked % idx miss %    q t|r|w  conn       time
       0     950      469        0         0       471         0  10396  12295   3207       27     34.9          0      0|0|0   152   07:18:49
       0     838      418        0         0       422         0  10396  12295   3209       21     34.6          0      0|0|0   152   07:18:50
       0    1005      502        0         0       504         0  10396  12295   3211       21     35.5          0      0|0|0   152   07:18:51
       0     837      410        0         0       418         0  10396  12295   3212       20     35.7          0      0|0|0   152   07:18:52
       0     754      377        0         0       379         0  10396  12295   3214       19     36.7          0      0|0|0   152   07:18:53
       0     841      420        0         0       422         0  10396  12295   3216       24     35.9          0      0|0|0   152   07:18:54
       0     877      438        0         0       442         0  10396  12295   3217       23     37.2          0      0|0|0   152   07:18:55
       0     799      393        0         0       395         0  10396  12295   3219       21       37          0      0|0|0   152   07:18:56
       0     947      471        0         0       479         0  10396  12295   3221       26       39          0      0|0|0   152   07:18:57
       0     855      427        0         0       429         0  10396  12295   3222       24     38.4          0      0|0|0   152   07:18:58
       0    1007      504        0         0       506         0  10396  12295   3224       31       36          0      0|0|0   152   07:18:59
       0     841      413        0         0       417         0  10396  12295   3226       23     37.2          0      0|0|0   152   07:19:00

统计数据来自开发环境,不能假设真的来自生产环境。

根据架构,我无法减少该集合的索引大小,但我看到 usePowerOf2Sizes 在这种情况下可以帮助我改善 mongodb 中的写入/更新响应时间。

我听说过很多 usePowerOf2Sizes ,它说

由于 usePowerOf2Sizes 可以减少碎片。所有数据都将设置在 mmemory 中,性能会很棒。使用此选项,MongoDB 将能够更有效地重用空间。usePowerOf2Sizes 对于您将插入和删除大量文档的集合很有用,以确保 MongoDB 将有效地使用磁盘空间。

我想知道使用选项 usePowerOf2Sizes 是否会有任何负面影响?我的 mongodb 中有 17 个集合,并且只想将 usePowerOf2Sizes 用于一个集合。

请让我知道,提前谢谢。

4

0 回答 0