mongostat是MongoDB自带的实时性能监控工具,可展示内存使用、操作频率等指标。通过-u(用户名)、-p(密码)、--authenticationDatabase(认证库)参数连接实例,常用指标包括:
res:物理内存使用量(MB),反映MongoDB实际占用的物理内存;vsize:虚拟内存使用量(MB),包含物理内存与交换空间的总和;%used:WiredTiger引擎使用的缓存占比(需结合serverStatus中的wiredTiger.cache.used确认)。mongostat --host localhost --port 27017 -u admin -p yourpassword --authenticationDatabase=admin。mongotop按数据库或集合维度展示读写耗时,帮助定位内存消耗高的热点操作。通过-u、-p参数连接,输出包括:
total:集合总读写耗时;read/write:读/写操作耗时。mongotop --host localhost --port 27017 -u admin -p yourpassword --authenticationDatabase=admin。serverStatus是MongoDB内置的系统状态命令,可获取内存使用的详细指标。通过mongo shell执行:
db.runCommand({ serverStatus: 1 }).mem
关键指标说明:
wiredTiger.cache.used:WiredTiger缓存已使用内存(MB);wiredTiger.cache.bytes dirty:缓存中待写入磁盘的脏数据量(MB);wiredTiger.cache.bytes dirty:脏数据占比(bytes dirty/bytes dirty total),过高可能导致频繁刷盘;mem.resident:MongoDB进程占用的物理内存(MB);mem.virtual:MongoDB进程使用的虚拟内存(MB)。free命令可查看Ubuntu系统的内存使用概况,包括MongoDB占用的内存。示例命令:
free -m
输出包括:
used:已使用内存(MB);free:空闲内存(MB);buff/cache:缓存和缓冲区使用的内存(MB,部分可能被MongoDB占用)。top或htop(需安装:sudo apt install htop)可实时查看进程的内存使用情况。按M键按内存排序,找到mongod进程,关注:
RES:进程占用的物理内存(MB);VIRT:进程使用的虚拟内存(MB)。若需要长期、全面的监控(如历史数据分析、告警),可使用以下工具:
mongodb_exporter,需安装并配置);PMM是开源的数据库监控工具,支持MongoDB内存使用监控(如WiredTiger缓存、物理内存占用),并提供慢查询分析、索引优化等功能。安装后,通过PMM Web界面即可查看内存指标。
MongoDB官方提供的监控工具,支持集群级别的内存使用监控、告警(如内存不足、缓存命中率低),并提供性能优化建议。需注册MongoDB Atlas账号并接入实例。
通过上述方法,可全面监控Ubuntu上MongoDB的内存使用情况,及时发现并解决内存瓶颈问题。