Pages

2011/07/01

mongodb、config serverをjournalする

気づいたらmongodbに従来の周期的なDisk書き出しに加えてjournalという方式がついていた。
 

journalについては @doryokujin さんの解説が詳しいのでそちらへ

>> MongoDBの新機能:ジャーナリングについて詳しく



 

さて、journalするとパフォーマンスが3割落ちるとな。
レプリカセットもあるし、データノードにそれほど必須というわけでもない。

で、config serverにちょうどいいんじゃないかと思い起動スクリプト(UpStart)に仕込んだ。
 


cat >/etc/init/mongo_config.conf<<'EOFEOF'
# Ubuntu upstart file at /etc/init/mongo_config.conf

limit nofile 20000 20000

kill timeout 300 # wait 300s between SIGTERM and SIGKILL.

pre-start script
mkdir -p /var/lib/mongo_config/
chown mongodb:mongodb /var/lib/mongo_config/
mkdir -p /var/log/mongo_config/
chown mongodb:mongodb /var/log/mongo_config/
end script

start on runlevel [2345]
stop on runlevel [06]

script
ENABLE_MONGODB="yes"
PIDFILE=/var/run/mongo_config.pid
# if [ -f /etc/default/mongodb ]; then . /etc/default/mongodb; fi
if [ "x$ENABLE_MONGODB" = "xyes" ]; then exec start-stop-daemon --start --quiet --chuid mongodb -m --pidfile $PIDFILE --exec /usr/bin/mongod -- --configsvr --journal --config /etc/mongo_config.conf; fi
end script
EOFEOF

 

configserverは3つあるが、先日ひとつのconfigが落ちた際にリバランスが出来なくなった上にlockがあってリカバリも少々面倒だった。

しばらく" --configsvr --journal" で運用してみよう。
 

0 件のコメント:

コメントを投稿