Posted on Apr 21
と本気で思う…特に使い始めは…。実際に運用を開始してみると色々なネタを提供してくれるし、それを解決することが出来れば自分のスキルとなる…(はず)。ということで MongoDB
を運用し始めて色々と学んだことなどを自分なりにまとめてみる。
MySQL
の show processlist
的なことをやる場合には以下を MongoDB
のコマンドラインインターフェースから以下を実行する。
db.currentOp();
一時的なモニタリングの場合には以下のように watch
コマンド等を組み合わせるといいかも。
watch 'echo "db.currentOp()" | mongo localhost/db --quiet'
レスポンスは JSON
っぽいフォーマット返ってくるが jq
でパース出来るのか…?
コレクションの件数等をサクッとリアルタイムに監視したい場合等は以下を watch
等と併用して実行する。
echo "db.collection.stats()" | /usr/bin/mongo localhost/db --quiet
件数以外にも取得可能。実際に叩いてみよう。
以下、適当に運用と監視してしまって困ったこと等を列挙。
Capped Collection
は MongoDB
のデータベースのサイズを予め決めておくことでドキュメントを書き込み続けてもディスクが溢れることが無い(MongoDB
がよしなに古いドキュメントを上書きしてくれるようだ)というログを保存する時等には夢のような設定だ。
ところが以下のような制約があったり挙動に悩まされた。
Capped Collection
が有効な場合、手動によるドキュメントの remove
は不可Capped Collection
の設定が外れてしまいディスク容量を食いつぶしてしましったことがあった便利だと思ったが…
remove
で削除はできるが…2014 かっぱのほげふが