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

相关推荐
逻辑驱动的ken8 小时前
Java高频面试考点18
java·开发语言·数据库·算法·面试·职场和发展·哈希算法
qq_392690668 小时前
Redis怎样应对Redis集群整体宕机带来的雪崩
jvm·数据库·python
快乐非自愿9 小时前
Redis--SDS字符串与集合的底层实现原理
数据库·redis·缓存
这儿有一堆花9 小时前
住宅代理(Residential Proxy)技术指南
开发语言·数据库·php
茉莉玫瑰花茶10 小时前
LangChain 核心组件 [ 2 ]
java·数据库·langchain
存在的五月雨11 小时前
Mysql 索引的一些
数据库·mysql
黄俊懿11 小时前
MySQL主从复制:从“异步“到“GTID“,数据同步的进化之路
数据库·sql·mysql·oracle·架构·dba·db
看海的四叔12 小时前
【SQL】SQL-管好你的字符串
大数据·数据库·hive·sql·数据分析·字符串
秋912 小时前
TiDB 数据库全链路实战指南:从下载部署到 Java 高并发调优
java·数据库·tidb
zhou周大哥12 小时前
银河麒麟安装mysql
数据库·mysql