CasualなMongoDBのサービス運用Tips
Upcoming SlideShare
Loading in...5
×
 

CasualなMongoDBのサービス運用Tips

on

  • 7,740 views

2012/07/06, MongoDB Casual Talks のLT発表資料

2012/07/06, MongoDB Casual Talks のLT発表資料

Statistics

Views

Total Views
7,740
Views on SlideShare
4,286
Embed Views
3,454

Actions

Likes
11
Downloads
17
Comments
0

10 Embeds 3,454

http://d.hatena.ne.jp 3011
http://slide.yoshiday.net 308
http://slide.localhost 73
http://webcache.googleusercontent.com 24
http://127.0.0.1 18
http://hatenatunnel.appspot.com 9
https://twitter.com 6
http://cache.yahoofs.jp 2
http://gacha.localhost 2
http://wayback.archive.org 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

CasualなMongoDBのサービス運用Tips CasualなMongoDBのサービス運用Tips Presentation Transcript

  • CasualなMongoDB のサービス運用Tips GCREST, Inc. 瀬賀 直樹(@nsega)12年7月6日金曜日
  • About me • 瀬賀 直樹(Twitter: @nsega) • 株式会社ジークレスト • @games(アットゲームズ) アバターコミュニティポータルサイト http://www.atgames.jp/ • Webエンジニア(主にサーバサイド)12年7月6日金曜日
  • Agenda • MongoDB、サービスで満1年間運用 • そのときの運用Tipsを紹介 • 惜しまずだしますm(__)m12年7月6日金曜日
  • Use Case SNS 機能の更新頻度が高いデータの データストアにMongoDBを利用 • イイネ!などのボタンアクション履歴 • 足あと 履歴 • つぶやきコメント12年7月6日金曜日
  • sharding (3 shards) MongoDB Server 9 Servers config1 mongod mongod [1]primary (Version 2.0.2) config2 mongod mongod [2]primary config3 mongod mongod [3]primary mongos router mongos router mongos router Web Server mongod [1]secondary mongod [1] arbitor 14 servers mongod [2]secondary mongod [2] arbitor Auto Sharding mongod [3]secondary mongod [3] arbitor OFF12年7月6日金曜日
  • Tips 1 定期的な計測 (なにを計測するか?)12年7月6日金曜日
  • Tips 1 • Collection/Document 数の増減 ex) >db.usercollection. find. count() >db.usercollection. stats() • Sharding の偏り ex) > printShardingSize() • Disk 使用状況の把握 ex) $ df -hT 、もしくは、 $du -sh ${MONGODB_HOME}12年7月6日金曜日
  • Tips 2 定期的な バックアップ12年7月6日金曜日
  • Tips 2 • MongoDB プロセスを丸々止めることが 可能な場合 =>データファイルをコピー(OSコマンド)す れば、OK!! (コールドバックアップ)12年7月6日金曜日
  • Tips 2 • プロセスを止めることができない場合 =>MongoDBのツールである mongodump 利用する(よく使っている) =>ReplicaSetのsecondary(参照させない) からとればサービス稼働中でも取得可 http://www.mongodb.org/display/DOCS/ Backups12年7月6日金曜日
  • Tips 3 定期的な データ最適化12年7月6日金曜日
  • Tips 3 • 定期的にRepairDatabaseコマンド実施 ex) mongod --repair --repairオプション指定でプロセス起動 ex) > db.repairDatabase() mongoシェルにて上のコマンド実行12年7月6日金曜日
  • Tips 3 Advantages • Diskサイズ(データファイル) 縮小 => Insert/Delete だけのCollectionの場 合、実はMongoのDocumentの中身は歯 抜けで使用効率がわるくなりやすい。 • Index の最適化( Rebuild ) =>Casualなんだから、わかるよね?12年7月6日金曜日
  • Tips 3 Disadvantages • 時間かかる。全データが対象だから • サーバにその時点のデータファイルサ イズ以上の空きがないとエラーになる • 話している内容がCasualか甚だ疑問。 ※異論は認める12年7月6日金曜日
  • Tips 3 • v2系より、コレクション単位で最適化 可能。Indexもrebuildしてくれる ex) db.collection.compact() ※Diskサイズは減らない。 http://www.mongodb.org/display/DOCS/ compact+Command12年7月6日金曜日
  • Tips 4 定期的な バージョンアップ12年7月6日金曜日
  • Tips 4 • v.1.8系(v1.8.2) => v.2.0系(v.2.0.2) バージョンアップを実施。 方法はこの資料にまとめてみました http://www.slideshare.net/n-sega/from- mongodb-v182-to-v20212年7月6日金曜日
  • Tips 4 • 性能、機能改善 Index サイズ Down Performance Up Journaling による 耐障害性 Up • バグfix (Global write lock まわり) ※v1系に比べての話。12年7月6日金曜日
  • Tips 4 • 例のGlobal write lock問題もv2系になっ たことでだいぶ解消 ※v1系に比べて。 • v.2.2系ではglobal write lockが発生しなく なるとか。 http://blog.serverdensity.com/2012/05/23/ goodbye-global-lock-mongodb-2-0-vs-2-2/12年7月6日金曜日
  • Conclusion12年7月6日金曜日
  • Conclusion • 運用を想定したデータストアの設計す れば、サービスで安定稼働実現可能な プロダクト。 • 愛用者には、人柱多し。ノウハウ・実 績はかなり豊富。12年7月6日金曜日
  • \(・ω・)/Lets MongoDB!!12年7月6日金曜日
  • ご静聴ありがとう ございました!!12年7月6日金曜日