我正在使用mongoose从node.js应用程序连接到mongodb的单个实例。应用程序和mongo服务器都在同一个vnet上,因此响应时间不是问题。
问题在尝试获取索引查询的结果时开始,几乎永远(最多20分钟)。当查询最终返回时,它可能包含介于25k到250k之间的文档。
这是我的收藏统计数据:
doc count: 24354776
size: 59.9 GiB (64,308,640,625)
storage size: 18.9 GiB (20,301,250,560)
avg object size: 2.6 KiB (2,640)
indexes: 4
index size: 768.0 MiB (805,330,944)
mongo服务器本身在Linux机器上运行,具有以下内容:
CPUS: 4
RAM: 16gb
Disc type: SSD
Disc size: 1536gb
IOPS limit: 7500
Throughput limit: (MB/s) 250
在调整服务器以尽可能高效地运行mongodb方面,我有以下内容:
store engine: wiredtiger
transparent_hugepage/enabled: [never]
transparent_hugepage/defrag: [never]
最后这里是查询本身的样子:(域字段被索引)
async getEntriesFromDB(collection, domain) {
return await collection.find({ domain }, { _id: 0, __v: 0 }, async function (err, res) {
if (err) {
return await err;
}
return await res;
});
}
任何线索都将不胜感激, 谢谢你的阅读!