mongodb.service 在 运行 几个小时后死于 Ubuntu
mongodb.service dies after running some hours in Ubuntu
我已经为我的服务器(Ubuntu 20.04)使用了 mongodb(v3.6.8),多年来一直运行良好。最近,它在 运行 几天后被 systemd 杀死并无法重新启动。我重新启动 sysemd,它工作了几个小时然后又死了。
参考系统状态:
$ systemctl status mongodb
● mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: failed (Result: signal) since Sat 2022-05-14 22:15:09 UTC; 5h 51min ago
Docs: man:mongod(1)
Process: 2463713 ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS (code=killed, signal=KILL)
Main PID: 2463713 (code=killed, signal=KILL)
有人知道如何解决这个问题吗?
更新日志:
$ sudo journalctl -u mongodb.service
-- Logs begin at Wed 2022-05-11 06:03:08 UTC, end at Sun 2022-05-15 04:55:05 UTC. --
May 14 13:01:23 localhost systemd[1]: mongodb.service: Main process exited, code=killed, status=9/KILL
May 14 13:01:23 localhost systemd[1]: mongodb.service: Failed with result 'signal'.
May 14 17:29:35 localhost systemd[1]: Started An object/document-oriented database.
May 14 22:15:09 localhost systemd[1]: mongodb.service: Main process exited, code=killed, status=9/KILL
May 14 22:15:09 localhost systemd[1]: mongodb.service: Failed with result 'signal'.
May 15 04:10:53 localhost systemd[1]: Started An object/document-oriented database.
更新:命令“dmesg -T”显示内存不足的原因。
[Sat May 14 22:15:05 2022] Out of memory: Killed process 2463713 (mongod) total-vm:2486640kB, anon-rss:1133764kB, file-rss:0kB, shmem-rss:0kB, UID:112 pgtables:3240kB oom_score_adj:0
使用 dmesg -T 显示系统被杀死的原因 mongodb(在问题部分更新),这是因为“内存不足”。
Mongodb 消耗 2486640kB 而我的服务器是 16 GB,所以 mongodb 不会消耗太高的内存。
失败是因为其他程序占用内存太多,不是mongodb问题
您可能需要减少 wiredTiger cacheSizeGB 以避免 mongod 被认为是高 ram 消费者并被 OS...
考虑到您只有 16GB RAM,如果您没有设置此选项,它将在您的 mongod.conf 文件中分配一半的 RAM(8GB),您可以按以下方式减少它:
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 4
当然,减小缓存大小会影响查询的执行时间...
我已经为我的服务器(Ubuntu 20.04)使用了 mongodb(v3.6.8),多年来一直运行良好。最近,它在 运行 几天后被 systemd 杀死并无法重新启动。我重新启动 sysemd,它工作了几个小时然后又死了。 参考系统状态:
$ systemctl status mongodb
● mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: failed (Result: signal) since Sat 2022-05-14 22:15:09 UTC; 5h 51min ago
Docs: man:mongod(1)
Process: 2463713 ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS (code=killed, signal=KILL)
Main PID: 2463713 (code=killed, signal=KILL)
有人知道如何解决这个问题吗?
更新日志:
$ sudo journalctl -u mongodb.service
-- Logs begin at Wed 2022-05-11 06:03:08 UTC, end at Sun 2022-05-15 04:55:05 UTC. --
May 14 13:01:23 localhost systemd[1]: mongodb.service: Main process exited, code=killed, status=9/KILL
May 14 13:01:23 localhost systemd[1]: mongodb.service: Failed with result 'signal'.
May 14 17:29:35 localhost systemd[1]: Started An object/document-oriented database.
May 14 22:15:09 localhost systemd[1]: mongodb.service: Main process exited, code=killed, status=9/KILL
May 14 22:15:09 localhost systemd[1]: mongodb.service: Failed with result 'signal'.
May 15 04:10:53 localhost systemd[1]: Started An object/document-oriented database.
更新:命令“dmesg -T”显示内存不足的原因。
[Sat May 14 22:15:05 2022] Out of memory: Killed process 2463713 (mongod) total-vm:2486640kB, anon-rss:1133764kB, file-rss:0kB, shmem-rss:0kB, UID:112 pgtables:3240kB oom_score_adj:0
使用 dmesg -T 显示系统被杀死的原因 mongodb(在问题部分更新),这是因为“内存不足”。 Mongodb 消耗 2486640kB 而我的服务器是 16 GB,所以 mongodb 不会消耗太高的内存。
失败是因为其他程序占用内存太多,不是mongodb问题
您可能需要减少 wiredTiger cacheSizeGB 以避免 mongod 被认为是高 ram 消费者并被 OS... 考虑到您只有 16GB RAM,如果您没有设置此选项,它将在您的 mongod.conf 文件中分配一半的 RAM(8GB),您可以按以下方式减少它:
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 4
当然,减小缓存大小会影响查询的执行时间...