SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
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(__)m


12年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

         OFF
12年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/
              Backups

12年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+Command

12年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-v202


12年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日金曜日
Conclusion

12年7月6日金曜日
Conclusion

             • 運用を想定したデータストアの設計す
              れば、サービスで安定稼働実現可能な
              プロダクト。

             • 愛用者には、人柱多し。ノウハウ・実
              績はかなり豊富。


12年7月6日金曜日
\(・ω・)/Let's MongoDB!!




12年7月6日金曜日
ご静聴ありがとう
             ございました!!


12年7月6日金曜日

Más contenido relacionado

La actualidad más candente

ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~Akihiro Kuwano
 
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例Akihiro Kuwano
 
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandMasakazu Matsushita
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法Tetsutaro Watanabe
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?ichirin2501
 
How to backup your mroonga database?
How to backup your mroonga database?How to backup your mroonga database?
How to backup your mroonga database?yoku0825
 
MongoDBざっくり解説
MongoDBざっくり解説MongoDBざっくり解説
MongoDBざっくり解説知教 本間
 
Db tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clustersDb tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clustersHiroaki Kubota
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜Naruhiko Ogasawara
 
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村Koichi Uchimura
 
DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?Hiroaki Kubota
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜Takahiro Inoue
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBmoai kids
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成弘毅 露崎
 
MySQLチューニング
MySQLチューニングMySQLチューニング
MySQLチューニングyoku0825
 
Mongo db勉強会の補足
Mongo db勉強会の補足Mongo db勉強会の補足
Mongo db勉強会の補足CROOZ, inc.
 
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜Masakazu Matsushita
 
分割と整合性と戦う
分割と整合性と戦う分割と整合性と戦う
分割と整合性と戦うYugo Shimizu
 

La actualidad más candente (20)

ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~ザ・ドキュメント~うまくいかないNoSQL~
ザ・ドキュメント~うまくいかないNoSQL~
 
AmebaのMongoDB活用事例
AmebaのMongoDB活用事例AmebaのMongoDB活用事例
AmebaのMongoDB活用事例
 
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
 
MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法MongoDBが遅いときの切り分け方法
MongoDBが遅いときの切り分け方法
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
 
How to backup your mroonga database?
How to backup your mroonga database?How to backup your mroonga database?
How to backup your mroonga database?
 
MongoDBざっくり解説
MongoDBざっくり解説MongoDBざっくり解説
MongoDBざっくり解説
 
Db tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clustersDb tech showcase2015 how to replicate between clusters
Db tech showcase2015 how to replicate between clusters
 
Mysql toranomaki
Mysql toranomakiMysql toranomaki
Mysql toranomaki
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
 
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
 
DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
 
MySQLチューニング
MySQLチューニングMySQLチューニング
MySQLチューニング
 
Maatkitの紹介
Maatkitの紹介Maatkitの紹介
Maatkitの紹介
 
Mongo db勉強会の補足
Mongo db勉強会の補足Mongo db勉強会の補足
Mongo db勉強会の補足
 
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
 
分割と整合性と戦う
分割と整合性と戦う分割と整合性と戦う
分割と整合性と戦う
 

Destacado

カジュアルにソースコードリーディング
カジュアルにソースコードリーディングカジュアルにソースコードリーディング
カジュアルにソースコードリーディングAkihiro Okuno
 
海外向けサービスの苦労話
海外向けサービスの苦労話海外向けサービスの苦労話
海外向けサービスの苦労話Masakazu Matsushita
 
iOS App performance tuning with Instruments
iOS App performance tuning with InstrumentsiOS App performance tuning with Instruments
iOS App performance tuning with Instrumentsgc-hiramatsu
 
From MongoDB v1.8.2 To v2.0.2
From MongoDB v1.8.2 To v2.0.2From MongoDB v1.8.2 To v2.0.2
From MongoDB v1.8.2 To v2.0.2Naoki Sega
 
kontagent紹介資料
kontagent紹介資料kontagent紹介資料
kontagent紹介資料Eiji Hachiya
 
アメブロFaceの顔認識システム
アメブロFaceの顔認識システムアメブロFaceの顔認識システム
アメブロFaceの顔認識システムTakahiko Teramoto
 
iPhoneで動くFlash Playerを実装した苦労話LT資料
iPhoneで動くFlash Playerを実装した苦労話LT資料iPhoneで動くFlash Playerを実装した苦労話LT資料
iPhoneで動くFlash Playerを実装した苦労話LT資料Kohei Morino
 

Destacado (9)

カジュアルにソースコードリーディング
カジュアルにソースコードリーディングカジュアルにソースコードリーディング
カジュアルにソースコードリーディング
 
海外向けサービスの苦労話
海外向けサービスの苦労話海外向けサービスの苦労話
海外向けサービスの苦労話
 
iOS App performance tuning with Instruments
iOS App performance tuning with InstrumentsiOS App performance tuning with Instruments
iOS App performance tuning with Instruments
 
From MongoDB v1.8.2 To v2.0.2
From MongoDB v1.8.2 To v2.0.2From MongoDB v1.8.2 To v2.0.2
From MongoDB v1.8.2 To v2.0.2
 
Inside png
Inside pngInside png
Inside png
 
kontagent紹介資料
kontagent紹介資料kontagent紹介資料
kontagent紹介資料
 
アメブロFaceの顔認識システム
アメブロFaceの顔認識システムアメブロFaceの顔認識システム
アメブロFaceの顔認識システム
 
iPhoneで動くFlash Playerを実装した苦労話LT資料
iPhoneで動くFlash Playerを実装した苦労話LT資料iPhoneで動くFlash Playerを実装した苦労話LT資料
iPhoneで動くFlash Playerを実装した苦労話LT資料
 
Ca勉強会・ldについて
Ca勉強会・ldについてCa勉強会・ldについて
Ca勉強会・ldについて
 

Similar a CasualなMongoDBのサービス運用Tips

CMS / BLOG and SnoWOman
CMS / BLOG and SnoWOmanCMS / BLOG and SnoWOman
CMS / BLOG and SnoWOmanWO Community
 
CodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみるCodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみる智之 大野
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~じゅん なかざ
 
セプテーニさんでのセミナー
セプテーニさんでのセミナーセプテーニさんでのセミナー
セプテーニさんでのセミナーTokusei Noborio
 
Mongo dbを知ろう devlove関西
Mongo dbを知ろう   devlove関西Mongo dbを知ろう   devlove関西
Mongo dbを知ろう devlove関西Ryuji Tamagawa
 
配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用yut148atgmaildotcom
 
Hadoopを用いた大規模ログ解析
Hadoopを用いた大規模ログ解析Hadoopを用いた大規模ログ解析
Hadoopを用いた大規模ログ解析shuichi iida
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイントKentaro Matsui
 
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Takashi Takizawa
 
Cocos2d platforms devcon_jp_20120621_en
Cocos2d platforms devcon_jp_20120621_enCocos2d platforms devcon_jp_20120621_en
Cocos2d platforms devcon_jp_20120621_enRicardo Quesada
 
B 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureB 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureGoAzure
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門じゅん なかざ
 
[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...
[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...
[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...Insight Technology, Inc.
 
MongoDBCSharp
MongoDBCSharpMongoDBCSharp
MongoDBCSharpytanno
 
Chromium androidビルド
Chromium androidビルドChromium androidビルド
Chromium androidビルドHiroshi Sakate
 
Freebsd ports と暮らす(5) 2012年を振り返る
Freebsd ports と暮らす(5) 2012年を振り返るFreebsd ports と暮らす(5) 2012年を振り返る
Freebsd ports と暮らす(5) 2012年を振り返るHirohisa Yamaguchi
 

Similar a CasualなMongoDBのサービス運用Tips (20)

CMS / BLOG and SnoWOman
CMS / BLOG and SnoWOmanCMS / BLOG and SnoWOman
CMS / BLOG and SnoWOman
 
CodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみるCodeIgniterでXMLを処理してみる
CodeIgniterでXMLを処理してみる
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
 
セプテーニさんでのセミナー
セプテーニさんでのセミナーセプテーニさんでのセミナー
セプテーニさんでのセミナー
 
WiredTigerを詳しく説明
WiredTigerを詳しく説明WiredTigerを詳しく説明
WiredTigerを詳しく説明
 
Mongo dbを知ろう devlove関西
Mongo dbを知ろう   devlove関西Mongo dbを知ろう   devlove関西
Mongo dbを知ろう devlove関西
 
配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用
 
Hadoopを用いた大規模ログ解析
Hadoopを用いた大規模ログ解析Hadoopを用いた大規模ログ解析
Hadoopを用いた大規模ログ解析
 
地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント地方企業がソーシャルゲーム開発を成功させるための10のポイント
地方企業がソーシャルゲーム開発を成功させるための10のポイント
 
Aiming study#6pdf
Aiming study#6pdfAiming study#6pdf
Aiming study#6pdf
 
TogoRecipes 120907
TogoRecipes 120907TogoRecipes 120907
TogoRecipes 120907
 
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
 
Google Product
Google ProductGoogle Product
Google Product
 
Cocos2d platforms devcon_jp_20120621_en
Cocos2d platforms devcon_jp_20120621_enCocos2d platforms devcon_jp_20120621_en
Cocos2d platforms devcon_jp_20120621_en
 
B 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureB 2-1 はじめての Windows Azure
B 2-1 はじめての Windows Azure
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...
[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...
[db tech showcase Tokyo 2017] E35: 12台でやってみた!DWHソフトウェアアプライアンス Db2 Warehouse ~...
 
MongoDBCSharp
MongoDBCSharpMongoDBCSharp
MongoDBCSharp
 
Chromium androidビルド
Chromium androidビルドChromium androidビルド
Chromium androidビルド
 
Freebsd ports と暮らす(5) 2012年を振り返る
Freebsd ports と暮らす(5) 2012年を振り返るFreebsd ports と暮らす(5) 2012年を振り返る
Freebsd ports と暮らす(5) 2012年を振り返る
 

CasualなMongoDBのサービス運用Tips

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