gpt4 book ai didi

mongodb - 如何防止创建新的 MongoDB 数据库减慢我的测试速度?

转载 作者:可可西里 更新时间:2023-11-01 10:29:47 25 4
gpt4 key购买 nike

在我的每个功能测试之前,我删除测试数据库并通过再次设置索引来“重新创建”它。这导致每个小测试都需要超过一秒的时间。

在日志中,这些行显示:

2015-01-27T17:24:38.129+0100 [initandlisten] connection accepted from anonymous unix socket #4 (1 connection now open)2015-01-27T17:24:38.141+0100 [conn4] dropDatabase test starting2015-01-27T17:24:38.153+0100 [conn4] removeJournalFiles2015-01-27T17:24:38.170+0100 [conn4] dropDatabase test finished2015-01-27T17:24:38.171+0100 [FileAllocator] allocating new datafile /home/tomas/mongodb/data/test.ns, filling with zeroes...2015-01-27T17:24:38.908+0100 [FileAllocator] done allocating datafile /home/tomas/mongodb/data/test.ns, size: 16MB,  took 0.736 secs2015-01-27T17:24:38.908+0100 [FileAllocator] allocating new datafile /home/tomas/mongodb/data/test.0, filling with zeroes...2015-01-27T17:24:38.914+0100 [FileAllocator] done allocating datafile /home/tomas/mongodb/data/test.0, size: 64MB,  took 0.005 secs

请注意,为数据库分配新数据文件“用了 0.736 秒”。有什么办法可以减少或避免这种情况?

我尝试使用 --noprealloc,但没有任何区别。

最佳答案

我在写这个问题的时候找到了一个很好的答案。我在谷歌上搜索了是否可以完全在 RAM 中运行 MongoDB,事实证明这真的很容易(我关注了 this guide 。)

我为 RAM 磁盘创建了一个媒体文件夹:

sudo mkdir /media/ramfs
sudo chmod 777 /media/ramfs

将 RAM 磁盘安装到文件夹中:

sudo mount -t tmpfs -o size=128M tmpfs /media/ramfs/

为 MongoDB 创建目录:

mkdir /media/ramfs/mongodata

并使用此脚本启动 MongoDB (mongo-testing):

mongod \
--dbpath=/media/ramfs/mongodata \
--bind_ip=127.0.0.1 \
--port=9701 \
--pidfilepath=$HOME/mongodb/mongodb.pid \
--unixSocketPrefix=$HOME/mongodb \
--noprealloc \
--nojournal \
--smallfiles \
$*

我的测试套件时间从近 4 秒减少到 0.07 秒。

现在我正在研究同时运行两个 MongoDB 实例并让我的测试套件使用在 RAM 磁盘上运行的实例,但这是一个单独的主题。

关于mongodb - 如何防止创建新的 MongoDB 数据库减慢我的测试速度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28175446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com