各位老师 好,部署环境mongodb v3.2.7 近几个月后内存逐渐递增, 目前内存占用达到80% 的系统内存了。 cacheSizeGB默认值。系统内存32GB,现通过mongostat查看:
insert query update delete getmore command % dirty % used flushes vsize res qr|qw ar|aw netIn netOut conn set repl time
17 9 *0 8 0 13|0 0.5 79.0 0 30.1G 28.4G 0|0 0|0 977k 995k 501 cloudReplSet PRI 2021-05-07T16:33:42+08:00
21 11 *0 10 0 6|0 0.5 79.1 0 30.1G 28.4G 0|0 0|1 704k 904k 501 cloudReplSet PRI 2021-05-07T16:33:43+08:00
如何调整cacheSizeGB值呢
您好,直接修改配置文件,修改 cacheSizeGB 值即可
“`
storage:
dbPath: xxx
directoryPerDB: true
journal:
enabled: true
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 12
directoryForIndexes: true
journalCompressor: snappy
“`
你说的80%,是used吗?还是vsize res这个指标。CacheSizeDB可以修改配置以及动态修改。修改配置文件上楼jiakunpeng 已提供。如果想在线修改可以执行如下命令:
db.adminCommand({setParameter: 1, wiredTigerEngineRuntimeConfig: “cache_size=15G”})
cachesize默认是占内存减去1GB/2.例如32G。32G-1G/2这个大小。这个只是WT使用内存。不包括OS缓存的大小。所以mongoDB进程是可以超过15GB大小。OS缓存是为了提升性能。
从mongostat中res来看已经使用28G。但是从dirty以及used来看并没有明显性能问题。
你好是滴 目前内存使用情况如下:
$ free -h
total used free shared buffers cached
Mem: 31G 31G 393M 776K 124M 1.5G
-/+ buffers/cache: 29G 2.0G
Swap: 0B 0B 0B
$top查看如下:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13240 root 20 0 30.536g 0.028t 0 S 6.3 91.4 44313:13 /usr/bin/mongod -f /etc/mongod.conf
采用如下:
db.adminCommand({setParameter:1,wiredTigerEngineRuntimeConfig:”cache_size=15G”}) 动态生效么?
我这边mongodb配置文件如下:
dbpath=/data/mongodb/mongod
logpath=/data/mongodb/mongod_master.log
pidfilepath=/var/run/mongdb_master.pid
directoryperdb=true
logappend=true
replSet=cloudReplSet
bind_ip=0.0.0.0
port=27017
oplogSize=10000
auth=true
keyFile=/data/mongodb/key.txt
是滴,目前系统内存情况如下:
$ free -h
total used free shared buffers cached
Mem: 31G 31G 393M 776K 124M 1.5G
-/+ buffers/cache: 29G 2.0G
Swap: 0B 0B 0B
$top -c
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13240 root 20 0 30.536g 0.028t 0 S 2.0 91.4 44313:16 /usr/bin/mongod -f /etc/mongod.conf
MongoDB默认配置文件如下:
dbpath=/data/mongodb/mongod
logpath=/data/mongodb/mongod_master.log
pidfilepath=/var/run/mongdb_master.pid
directoryperdb=true
logappend=true
replSet=cloudReplSet
bind_ip=0.0.0.0
port=27017
oplogSize=10000
auth=true
keyFile=/data/mongodb/key.txt
@jiakunpeng @xiaoxu 感谢,目前线上主库服务器 相关系统userd内存及mongodb vsize 、res 值都看超过了80%,现在使用动态调整db.adminCommand( { “setParameter”: 1, “wiredTigerEngineRuntimeConfig”: “cache_size=15GB”})
$ free -h
total used free shared buffers cached
Mem: 31G 31G 274M 776K 136M 2.2G
-/+ buffers/cache: 28G 2.6G
Swap: 0B 0B 0B
$ top
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13240 root 20 0 30.536g 0.027t 0 S 6.3 89.5 44345:31 /usr/bin/mongod -f /etc/mongod.conf
$ mongostat
insert query update delete getmore command % dirty % used flushes vsize res qr|qw ar|aw netIn netOut conn set repl time
23 13 *0 11 2 11|0 0.6 78.9 0 30.5G 28.1G 0|0 0|0 4m 7m 500 cloudReplSet PRI 2021-05-27T19:43:37+08:00
20 13 *0 9 3 6|0 0.6 78.9 0 30.5G 28.1G 0|0 0|0 6m 9m 500 cloudReplSet PRI 2021-05-27T19:43:38+08:00