我在 Ubuntu 上建立了一個帶有 mongodb 資料庫的 Node.js 伺服器。
我安裝了 mongodb官方文檔, 使用upstart
。
今天早上,我的節點伺服器用崩潰日誌叫醒我,說資料庫已關閉。這已經發生在1個月前了。
所以我檢查了狀態
> service mongod status
mongod stop/waiting
我重新啟動它sudo service mongod start
,問題就解決了。
但現在我想明白:為什麼停止了?今後如何避免再次發生?
我檢查了我的伺服器上次重新啟動。
> uptime
09:28:52 up 139 days, 21:34, 1 user, load average: 0.00, 0.01, 0.05
好的,不是系統重啟造成的。
我檢查了 mongod 日誌:
tail -500 /var/log/mongodb/mongod.log
我可以看到今天早上的重啟日誌,但與今晚沒有任何關係!
我不是系統管理員專家,我不知道現在可以檢查什麼以更好地理解我的問題。有人可以幫我嗎?
編輯:根據評論中的要求,這是我的新貴/etc/init/mongod.conf
文件:
# Ubuntu upstart file at /etc/init/mongod.conf
# Recommended ulimit values for mongod or mongos
# See http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
#
limit fsize unlimited unlimited
limit cpu unlimited unlimited
limit as unlimited unlimited
limit nofile 64000 64000
limit rss unlimited unlimited
limit nproc 64000 64000
kill timeout 300 # wait 300s between SIGTERM and SIGKILL.
pre-start script
DAEMONUSER=${DAEMONUSER:-mongodb}
if [ ! -d /var/lib/mongodb ]; then
mkdir -p /var/lib/mongodb && chown mongodb:mongodb /var/lib/mongodb
fi
if [ ! -d /var/log/mongodb ]; then
mkdir -p /var/log/mongodb && chown mongodb:mongodb /var/log/mongodb
fi
touch /var/run/mongodb.pid
chown $DAEMONUSER /var/run/mongodb.pid
end script
start on runlevel [2345]
stop on runlevel [06]
script
ENABLE_MONGOD="yes"
CONF=/etc/mongod.conf
DAEMON=/usr/bin/mongod
DAEMONUSER=${DAEMONUSER:-mongodb}
DAEMONGROUP=${DAEMONGROUP:-mongodb}
if [ -f /etc/default/mongod ]; then . /etc/default/mongod; fi
# Handle NUMA access to CPUs (SERVER-3574)
# This verifies the existence of numactl as well as testing that the command works
NUMACTL_ARGS="--interleave=all"
if which numactl >/dev/null 2>/dev/null && numactl $NUMACTL_ARGS ls / >/dev/null 2>/dev/null
then
NUMACTL="$(which numactl) -- $NUMACTL_ARGS"
DAEMON_OPTS=${DAEMON_OPTS:-"--config $CONF"}
else
NUMACTL=""
DAEMON_OPTS="-- "${DAEMON_OPTS:-"--config $CONF"}
fi
if [ "x$ENABLE_MONGOD" = "xyes" ]
then
exec start-stop-daemon --start \
--chuid $DAEMONUSER:$DAEMONGROUP \
--pidfile /var/run/mongodb.pid \
--make-pidfile \
--exec $NUMACTL $DAEMON $DAEMON_OPTS
fi
end script