CasualなMongoDBのサービス運用Tips

9,858 views

Published on

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

0 Comments
14 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,858
On SlideShare
0
From Embeds
0
Number of Embeds
5,081
Actions
Shares
0
Downloads
19
Comments
0
Likes
14
Embeds 0
No embeds

No notes for slide

CasualなMongoDBのサービス運用Tips

  1. 1. CasualなMongoDB のサービス運用Tips GCREST, Inc. 瀬賀 直樹(@nsega)12年7月6日金曜日
  2. 2. About me • 瀬賀 直樹(Twitter: @nsega) • 株式会社ジークレスト • @games(アットゲームズ) アバターコミュニティポータルサイト http://www.atgames.jp/ • Webエンジニア(主にサーバサイド)12年7月6日金曜日
  3. 3. Agenda • MongoDB、サービスで満1年間運用 • そのときの運用Tipsを紹介 • 惜しまずだしますm(__)m12年7月6日金曜日
  4. 4. Use Case SNS 機能の更新頻度が高いデータの データストアにMongoDBを利用 • イイネ!などのボタンアクション履歴 • 足あと 履歴 • つぶやきコメント12年7月6日金曜日
  5. 5. 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日金曜日
  6. 6. Tips 1 定期的な計測 (なにを計測するか?)12年7月6日金曜日
  7. 7. 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日金曜日
  8. 8. Tips 2 定期的な バックアップ12年7月6日金曜日
  9. 9. Tips 2 • MongoDB プロセスを丸々止めることが 可能な場合 =>データファイルをコピー(OSコマンド)す れば、OK!! (コールドバックアップ)12年7月6日金曜日
  10. 10. Tips 2 • プロセスを止めることができない場合 =>MongoDBのツールである mongodump 利用する(よく使っている) =>ReplicaSetのsecondary(参照させない) からとればサービス稼働中でも取得可 http://www.mongodb.org/display/DOCS/ Backups12年7月6日金曜日
  11. 11. Tips 3 定期的な データ最適化12年7月6日金曜日
  12. 12. Tips 3 • 定期的にRepairDatabaseコマンド実施 ex) mongod --repair --repairオプション指定でプロセス起動 ex) > db.repairDatabase() mongoシェルにて上のコマンド実行12年7月6日金曜日
  13. 13. Tips 3 Advantages • Diskサイズ(データファイル) 縮小 => Insert/Delete だけのCollectionの場 合、実はMongoのDocumentの中身は歯 抜けで使用効率がわるくなりやすい。 • Index の最適化( Rebuild ) =>Casualなんだから、わかるよね?12年7月6日金曜日
  14. 14. Tips 3 Disadvantages • 時間かかる。全データが対象だから • サーバにその時点のデータファイルサ イズ以上の空きがないとエラーになる • 話している内容がCasualか甚だ疑問。 ※異論は認める12年7月6日金曜日
  15. 15. Tips 3 • v2系より、コレクション単位で最適化 可能。Indexもrebuildしてくれる ex) db.collection.compact() ※Diskサイズは減らない。 http://www.mongodb.org/display/DOCS/ compact+Command12年7月6日金曜日
  16. 16. Tips 4 定期的な バージョンアップ12年7月6日金曜日
  17. 17. 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日金曜日
  18. 18. Tips 4 • 性能、機能改善 Index サイズ Down Performance Up Journaling による 耐障害性 Up • バグfix (Global write lock まわり) ※v1系に比べての話。12年7月6日金曜日
  19. 19. 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日金曜日
  20. 20. Conclusion12年7月6日金曜日
  21. 21. Conclusion • 運用を想定したデータストアの設計す れば、サービスで安定稼働実現可能な プロダクト。 • 愛用者には、人柱多し。ノウハウ・実 績はかなり豊富。12年7月6日金曜日
  22. 22. \(・ω・)/Lets MongoDB!!12年7月6日金曜日
  23. 23. ご静聴ありがとう ございました!!12年7月6日金曜日

×