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

相关推荐
小林熬夜学编程10 分钟前
【MySQL】第二弹---数据库基础全解析:从概念到实践的深度探索
linux·开发语言·数据库·mysql·算法
liuweidong080215 分钟前
【Pandas】pandas Series std
前端·数据库·pandas
_GR41 分钟前
Redis存储⑤Redis五大数据类型之 List 和 Set。
linux·数据库·redis·ubuntu·缓存
F——1 小时前
2025 IT职业发展方向及推荐
运维·数据库·学习·云计算·边缘计算
m0_748238781 小时前
从 SQL 语句到数据库操作
数据库·sql·oracle
HaoHao_0102 小时前
AWS 上的 Red Hat OpenShift 服务
服务器·数据库·云计算·aws·云服务器
是小崔啊2 小时前
Redis05 - 性能调优和缓存问题
数据库·redis·缓存
LUCIAZZZ2 小时前
通过代理模式理解Java注解的实现原理
java·开发语言·数据库·spring boot·mysql·spring·代理模式
bae-唯一2 小时前
深入了解 MySQL:从基础到高级特性
数据库·学习·mysql·命令
掘金者说3 小时前
【SQLite】设置本地时间戳默认值
linux·数据库·sqlite