mongodb 使用内存过大分析

ps aux

内存使用

复制代码
ps aux|head -1;ps aux|grep -v PID|sort -rn -k +4|head -10

swap 使用

复制代码
for i in $(ls /proc | grep "^[0-9]" | awk '$0>100'); do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/smaps;done| sort -k2nr | head

mongodb 命令

复制代码
data0data0:PRIMARY> db.version();
4.2.17

data0data0:PRIMARY> db.serverStatus().storageEngine;
{
	"name" : "wiredTiger",
	"supportsCommittedReads" : true,
	"oldestRequiredTimestampForCrashRecovery" : Timestamp(1738804816, 1),
	"supportsPendingDrops" : true,
	"dropPendingIdents" : NumberLong(0),
	"supportsSnapshotReadConcern" : true,
	"readOnly" : false,
	"persistent" : true,
	"backupCursorOpen" : false
}

查看 wiredTiger 内存参数大小

单位字节

复制代码
data0data0:PRIMARY> db.serverStatus().wiredTiger.cache["maximum bytes configured"]
1073741824

可以适当调小或者调大

复制代码
data0data0:PRIMARY> db.adminCommand({setParameter: 1, "wiredTigerEngineRuntimeConfig": "cache_size=2GB" });

查看修改后的最新值

复制代码
data0data0:PRIMARY> db.serverStatus().wiredTiger.cache["maximum bytes configured"];
2147483648

记得同步修改参数文件,避免实例重启后丢失修改值。

备注:

1、默认 WiredTiger 内部缓存大小为以下两者中的较大者:

(RAM 大小 - 1 GB)的 50%,或

256 MB.

https://www.mongodb.com/zh-cn/docs/v5.0/core/wiredtiger/#memory-use

相关推荐
chirrupy_hamal10 分钟前
PostgreSQL WAL 日志发展史 - pg7
数据库·postgresql
五颜六色的池1 小时前
my sql 常用函数及语句的执行顺序
数据库·sql
Gold Steps.1 小时前
从 “T+1” 到 “秒级”:MySQL+Flink+Doris 构建实时数据分析全链路
大数据·数据库·数据分析
花北城1 小时前
【MySQL】Oracle与MySQL,跨库数据转储
数据库·mysql·oracle
没有bug.的程序员2 小时前
MySQL 配置调优参数:从基础到生产级优化指南
java·数据库·mysql·优化·mysql配置调优
optimistic_chen2 小时前
【Java EE进阶 --- SpringBoot】Mybatis操作数据库(基础)
数据库·经验分享·spring boot·笔记·spring·java-ee·mybatis
支付宝小程序云2 小时前
百宝箱开放平台 ✖️ 查询信息列表
数据库
对着晚风做鬼脸2 小时前
MySQL进阶知识点(六)---- 存储引擎
数据库·mysql
百锦再3 小时前
从 .NET 到 Java 的转型指南:详细学习路线与实践建议
android·java·前端·数据库·学习·.net·数据库架构
卷Java3 小时前
uni-app 模板语法修复说明
java·数据库·spring boot·uni-app·mybatis