影响MongoDB性能的几个因素

文章目录

  • 影响因素
    • 1、锁
    • 2、内存
    • 3、缺页错误
    • 4、连接数

影响因素

1、锁

MongoDB 用一个锁确保数据的一致性。但如果某种操作长时间运行,其他请求和操作将不得不等待这个锁,导致系统性能降低。为了验证是否由于锁降低了性能,我们可以检查serverStatus输出的globalLock部分的数据。如果参数globalLock.currentQueue.total的值一直较大,说明系统中有许多请求在等待锁,同时表明并发问题影响了系统的性能。

如果globalLock.totalTime的值与uptime 的值相近,说明数据库在锁状态占用了系统大量时间。如果globalLock.ratio的值也高,说明数据库处理了大量的长查询,引起长查询的因数主要有:索引使用不恰当甚至低效,数据库的设计没有优化,查询语句本身结构性能低下,系统架构有问题等。

2、内存

MongoDB通过内存映射数据文件,如果数据集很大,MongoDB将占用所有可用的系统内存。正是由于内存映射机制将内存的管理交给操作系统来完成,简化了MongoDB的内存管理,提高了数据库系统的性能,但是由于不能确定数据集的大小,需要多少内存也是个未知之数。

通过serverStatus输出的关于内存使用状态方面的数据,我们能够深入地了解内存使用情况。检查参数mem.residen

你可能感兴趣的:(21天学会MongoDB,mongodb,数据库,nosql)