mongostat是MongoDB自带的实时性能监控工具,可显示每秒操作次数、内存使用(如res常驻内存、virt虚拟内存)、网络流量等指标。
sudo apt install mongodb-clients获取。sudo mongostat --host localhost:27017(替换为实际主机/IP),输出结果中res列表示MongoDB进程占用的物理内存(单位:KB)。mongotop用于监控每个数据库的读写耗时,帮助定位内存消耗高的集合(如频繁更新的集合可能占用更多内存)。
mongostat,通过sudo apt install mongodb-clients安装。sudo mongotop --host localhost:27017,输出结果中read/write列显示各集合的读写时间(单位:ms),耗时高的集合通常内存占用较多。通过mongo命令行工具执行内置命令,获取详细内存使用信息:
db.serverStatus().mem:返回内存使用的核心指标,包括:
resident:常驻物理内存(MB),反映MongoDB实际占用的内存;virtual:虚拟内存(MB),包括映射文件和堆内存;mapped:映射到内存的文件大小(MB),主要来自WiredTiger存储引擎的缓存。db.stats():查看数据库级别的统计信息,包括数据大小、索引大小等,辅助判断内存需求。top -p $(pgrep mongod)(pgrep mongod获取MongoDB进程ID),查看RES(常驻内存)列,实时监控MongoDB进程的内存占用。sudo apt install htop),支持颜色标识和排序,按F6选择RES列即可查看。运行free -m,查看系统内存使用概况(总内存、已用、空闲、缓存等)。used列表示已用内存,若接近系统总内存,可能需要优化MongoDB内存配置。
运行vmstat 1(每秒刷新一次),查看memory部分的free(空闲内存)、buff(缓冲区)、cache(缓存)等指标,判断系统内存压力是否影响MongoDB性能。
MongoDB Exporter(将MongoDB指标转换为Prometheus格式)收集数据,Prometheus存储时间序列数据,Grafana可视化展示。MongoDB Exporter:wget https://github.com/percona/mongodb_exporter/releases/download/v0.37.0/mongodb_exporter-0.37.0.linux-amd64.tar.gz,解压后运行./mongodb_exporter;prometheus.yml)添加MongoDB Exporter作为抓取目标;MongoDB官方云监控服务,无需安装额外软件,通过Atlas控制台实时查看内存使用、CPU、磁盘等指标,支持报警(如内存使用超过阈值时发送邮件/短信)。
商业监控平台,提供MongoDB内存使用、性能瓶颈分析等功能,支持与现有DevOps流程集成(如告警、日志关联)。
MongoDB官方可视化管理工具,提供直观的内存使用视图(如“服务器状态”中的“内存”模块),支持查看WiredTiger缓存、虚拟内存等指标。
mapped约为10GB)。通过上述方法,可全面监控Debian上MongoDB的内存使用情况,及时发现性能瓶颈并进行优化(如调整WiredTiger缓存大小、优化查询索引)。