SlideShare a Scribd company logo
MongoDBを半年ちょっと運用して 
みた 
(株)グルーヴノーツ 
服部 勇祐
前提 
● ピーク時秒間1,000リクエスト 
● DB物理36台、APIサーバ50台 
● この規模のサービスをMongoDBで運用して何 
が起こったか?何に困ったか?
MongoDBが応答しない! 
● キューにリクエストが溜まり続け、応答が返ら 
ない
何が起こっていたのか? 
● 取得するデータ量が多すぎてサーバの転送量上 
限に引っかかっていた 
– MongoDBは、気軽にデータが放り込めるため、1ド 
キュメントが大きくなりすぎていた 
→MongoDBからデータ取得する際にデータ 
を絞り込むことで解決
MongoDBが応答しない!その2 
● キューにリクエストが溜まり続け、応答が返ら 
ない
何が起こっていたのか? 
● 検索に全シャードに重いクエリが発行される
引用元: 〜うまく動かすMongoDB〜仕組みや挙動を理解する - doryokujin's blog 
http://doryokujin.hatenablog.jp/entry/20110519/1305737343
何が起こっていたのか? 
● $or演算が原因、全てのシャードに重いクエリ 
(全探索)が発行される 
– {elem: {“$or”: [{id: 1},{id: 2}, {id: 3}]}} 
→$orヤバイ、$in推奨 
  $inだと、シャード毎に必要なクエリだ 
けを送ってくれる
MongoDBが応答しない!その3 
● 特定のDBのみ異常に負荷が高い
何が起こっていたのか? 
● シャーディングの罠 
– シャーディングしないコレクションは全てプライマリシャードに配置される 
– プライマリシャードに負荷集中してプライマリシャードのみが過負荷に 
→シャードするコレクションのデータをプライマリシャードから 
排除 
→レプリカセットのセカンダリリードで負荷分散 
→シャーディングしないコレクションをRedisでキャッシュ
(再掲) 
引用元: 〜うまく動かすMongoDB〜仕組みや挙動を理解する - doryokujin's blog 
http://doryokujin.hatenablog.jp/entry/20110519/1305737343
謎のDBエラー 
● DBに書き込む→DBから読み込む→データが無 
い!
何が起こっていたのか? 
● レプリカセットの罠 
– マスターに書き込んだデータがスレーブに反映され 
る前に読みにいってしまう 
→書き込んですぐ読み込むようなデータは 
マスターから読み込むように
引用元: 〜うまく動かすMongoDB〜仕組みや挙動を理解する - doryokujin's blog 
http://doryokujin.hatenablog.jp/entry/20110519/1305737343
オートバランサー 
● 自動的にチャンクを分散させる機能
引用元: 〜うまく動かすMongoDB〜仕組みや挙動を理解する - doryokujin's blog 
http://doryokujin.hatenablog.jp/entry/20110519/1305737343
何がマズイのか? 
● チャンクの移動にやたらと時間がかかる 
– チャンク移動中は書き込みロックされ、書き込みで 
きない 
● 負荷分散のため、シャードするコレクションの 
データをプライマリシャードから排除していた 
ものが戻されてしまう
増設、減設 
● 簡単にできるという触れ込みだったはずが…
何がマズかったのか? 
● オートバランサが前提 
● 結局いずれも、ダンプ&リストアで対応 
● 無停止運用は難しい
(再掲) 
引用元: 〜うまく動かすMongoDB〜仕組みや挙動を理解する - doryokujin's blog 
http://doryokujin.hatenablog.jp/entry/20110519/1305737343
これ以降は様々なトピックについて 
とりとめも無く話してみます
監視 
● MMS
バックアップ&リストア 
● 現状フルダンプのみ 
● MySQLみたいな差分バックアップほしい 
● MMSの活用が一番楽 
● 何かMongoDB2.7以降で標準入力からの 
mongorestoreをサポートするらしい
他いろいろな問題 
● ディスク消費半端ない 
– 空のDBでも4GBくらい持って行く 
– 実データ量のおよそ倍程度のディスク領域を使用 
– 開発等でも大量のディスク消費。テスト用のDBで 
も数GB消費(オプション等で抑制は可能) 
● トランザクションが無い 
– 回避策はありますが、リレーショナルデータベース 
の感覚で開発すると大変…かも?
MongoDBのいいところ 
● 大量のデータを扱える←レプリカセット+ 
シャーディングの効果。これがないとゲーム側 
でワールド分割等を考えないといけない 
● 半年ちょっとの運用でデータロスト無し(この 
程度は当たり前ではあるとは思いますが)
まとめ 
● 完全な無停止運用は困難(増設・減設) 
● コスト高い(ディスク消費大きい) 
● 大量のデータの扱いはやりやすい(DB分割不 
要) 
● が、レプリカセットやシャーディングの性質を 
よく理解していないと多大なるパフォーマンス 
問題が 
● 結局のところは使い分けデスネ

More Related Content

What's hot

DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?Hiroaki Kubota
 
MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!
Tetsutaro Watanabe
 
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
Masakazu Matsushita
 
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
Hiroaki Kubota
 
MongoDBの監視
MongoDBの監視MongoDBの監視
MongoDBの監視
Tetsutaro Watanabe
 
MongoDB
MongoDBMongoDB
NoSQLデータベースと位置情報
NoSQLデータベースと位置情報NoSQLデータベースと位置情報
NoSQLデータベースと位置情報
Koji Ichiwaki
 
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
Naruhiko Ogasawara
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
Naruhiko Ogasawara
 
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
Masakazu Matsushita
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDBmoai kids
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
Tetsutaro Watanabe
 
HTML5 Local Storageを利用したメモ帳アプリ
HTML5 Local Storageを利用したメモ帳アプリHTML5 Local Storageを利用したメモ帳アプリ
HTML5 Local Storageを利用したメモ帳アプリ
Yossy Taka
 
Ajax非同期通信によるサーバー通信
Ajax非同期通信によるサーバー通信Ajax非同期通信によるサーバー通信
Ajax非同期通信によるサーバー通信
Yossy Taka
 
Cassandra v0.6-siryou
Cassandra v0.6-siryouCassandra v0.6-siryou
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasualMongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasual
Yasuhiro Matsuo
 
はじめてのMongoDB
はじめてのMongoDBはじめてのMongoDB
はじめてのMongoDB
Keisuke Izumiya
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜Takahiro Inoue
 
カジュアルにMongo dbのbackup機能説明
カジュアルにMongo dbのbackup機能説明カジュアルにMongo dbのbackup機能説明
カジュアルにMongo dbのbackup機能説明
Masakazu Matsushita
 
MongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキストMongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキストAkihiro Kuwano
 

What's hot (20)

DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?DB tech showcase: 噂のMongoDBその用途は?
DB tech showcase: 噂のMongoDBその用途は?
 
MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!MongoDB World 2014に行ってきた!
MongoDB World 2014に行ってきた!
 
後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜後悔しないもんごもんごの使い方 〜アプリ編〜
後悔しないもんごもんごの使い方 〜アプリ編〜
 
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
 
MongoDBの監視
MongoDBの監視MongoDBの監視
MongoDBの監視
 
MongoDB
MongoDBMongoDB
MongoDB
 
NoSQLデータベースと位置情報
NoSQLデータベースと位置情報NoSQLデータベースと位置情報
NoSQLデータベースと位置情報
 
MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎MongoDB very basic (Japanese) / MongoDB基礎の基礎
MongoDB very basic (Japanese) / MongoDB基礎の基礎
 
MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜MongoDB〜その性質と利用場面〜
MongoDB〜その性質と利用場面〜
 
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal LandソーシャルゲームにおけるMongoDB適用事例 - Animal Land
ソーシャルゲームにおけるMongoDB適用事例 - Animal Land
 
Introduction to MongoDB
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
 
初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!初心者向けMongoDBのキホン!
初心者向けMongoDBのキホン!
 
HTML5 Local Storageを利用したメモ帳アプリ
HTML5 Local Storageを利用したメモ帳アプリHTML5 Local Storageを利用したメモ帳アプリ
HTML5 Local Storageを利用したメモ帳アプリ
 
Ajax非同期通信によるサーバー通信
Ajax非同期通信によるサーバー通信Ajax非同期通信によるサーバー通信
Ajax非同期通信によるサーバー通信
 
Cassandra v0.6-siryou
Cassandra v0.6-siryouCassandra v0.6-siryou
Cassandra v0.6-siryou
 
MongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasualMongoDB on EC2 #mongodbcasual
MongoDB on EC2 #mongodbcasual
 
はじめてのMongoDB
はじめてのMongoDBはじめてのMongoDB
はじめてのMongoDB
 
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
MongoDBを用いたソーシャルアプリのログ解析 〜解析基盤構築からフロントUIまで、MongoDBを最大限に活用する〜
 
カジュアルにMongo dbのbackup機能説明
カジュアルにMongo dbのbackup機能説明カジュアルにMongo dbのbackup機能説明
カジュアルにMongo dbのbackup機能説明
 
MongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキストMongoDBのはじめての運用テキスト
MongoDBのはじめての運用テキスト
 

Viewers also liked

У тебя есть план, как изменить МИР?
У тебя есть план, как изменить МИР?У тебя есть план, как изменить МИР?
У тебя есть план, как изменить МИР?
Nina Polyanicheva - GoFortune
 
Generating Electricity
Generating ElectricityGenerating Electricity
Generating Electricity
PaavoWaffle
 
Buddha
Buddha Buddha
Buddha
smeas
 
Digipak slidshare
Digipak slidshareDigipak slidshare
Digipak slidshare
Harriet Robinson
 
Magazine analysis
Magazine analysisMagazine analysis
Magazine analysis
JayjRose
 
Capacitacion
CapacitacionCapacitacion
Capacitacion
Karen David Graciano
 
Paco copia
Paco   copiaPaco   copia
А ты подумал о пенсии?
А ты подумал о пенсии?А ты подумал о пенсии?
А ты подумал о пенсии?
Nina Polyanicheva - GoFortune
 
Questionnaire analysis
Questionnaire analysisQuestionnaire analysis
Questionnaire analysis
JayjRose
 
Stop Air Pollution
Stop Air PollutionStop Air Pollution
Stop Air Pollution
nikkineilson
 
Representation of Teenagers in the Media
Representation of Teenagers in the MediaRepresentation of Teenagers in the Media
Representation of Teenagers in the Media
Harriet Robinson
 
แคตลอกเครื่องออกกำลังกายกลางแจ้ง (ชุดใหญ่พิเศษ) Pdf
แคตลอกเครื่องออกกำลังกายกลางแจ้ง (ชุดใหญ่พิเศษ) Pdfแคตลอกเครื่องออกกำลังกายกลางแจ้ง (ชุดใหญ่พิเศษ) Pdf
แคตลอกเครื่องออกกำลังกายกลางแจ้ง (ชุดใหญ่พิเศษ) Pdf
เครื่องออกกำลังกายกลางแจ้ง โรงงานผลิต
 
Soalan tmk
Soalan tmkSoalan tmk
Soalan tmk
zuhaipgm
 
Modul matematika-kelas-x-logika
Modul matematika-kelas-x-logikaModul matematika-kelas-x-logika
Modul matematika-kelas-x-logika
Diana Permatasari
 
Minit sainssk jengka 25 ke 2
Minit sainssk jengka 25 ke 2Minit sainssk jengka 25 ke 2
Minit sainssk jengka 25 ke 2
zuhaipgm
 
20110514 mongo dbチューニング
20110514 mongo dbチューニング20110514 mongo dbチューニング
20110514 mongo dbチューニング
Yuichi Matsuo
 
Mongo DBを半年運用してみた
Mongo DBを半年運用してみたMongo DBを半年運用してみた
Mongo DBを半年運用してみた
Masakazu Matsushita
 
MongoDB全機能解説1
MongoDB全機能解説1MongoDB全機能解説1
MongoDB全機能解説1
Takahiro Inoue
 

Viewers also liked (19)

У тебя есть план, как изменить МИР?
У тебя есть план, как изменить МИР?У тебя есть план, как изменить МИР?
У тебя есть план, как изменить МИР?
 
Energy highdef
Energy highdefEnergy highdef
Energy highdef
 
Generating Electricity
Generating ElectricityGenerating Electricity
Generating Electricity
 
Buddha
Buddha Buddha
Buddha
 
Digipak slidshare
Digipak slidshareDigipak slidshare
Digipak slidshare
 
Magazine analysis
Magazine analysisMagazine analysis
Magazine analysis
 
Capacitacion
CapacitacionCapacitacion
Capacitacion
 
Paco copia
Paco   copiaPaco   copia
Paco copia
 
А ты подумал о пенсии?
А ты подумал о пенсии?А ты подумал о пенсии?
А ты подумал о пенсии?
 
Questionnaire analysis
Questionnaire analysisQuestionnaire analysis
Questionnaire analysis
 
Stop Air Pollution
Stop Air PollutionStop Air Pollution
Stop Air Pollution
 
Representation of Teenagers in the Media
Representation of Teenagers in the MediaRepresentation of Teenagers in the Media
Representation of Teenagers in the Media
 
แคตลอกเครื่องออกกำลังกายกลางแจ้ง (ชุดใหญ่พิเศษ) Pdf
แคตลอกเครื่องออกกำลังกายกลางแจ้ง (ชุดใหญ่พิเศษ) Pdfแคตลอกเครื่องออกกำลังกายกลางแจ้ง (ชุดใหญ่พิเศษ) Pdf
แคตลอกเครื่องออกกำลังกายกลางแจ้ง (ชุดใหญ่พิเศษ) Pdf
 
Soalan tmk
Soalan tmkSoalan tmk
Soalan tmk
 
Modul matematika-kelas-x-logika
Modul matematika-kelas-x-logikaModul matematika-kelas-x-logika
Modul matematika-kelas-x-logika
 
Minit sainssk jengka 25 ke 2
Minit sainssk jengka 25 ke 2Minit sainssk jengka 25 ke 2
Minit sainssk jengka 25 ke 2
 
20110514 mongo dbチューニング
20110514 mongo dbチューニング20110514 mongo dbチューニング
20110514 mongo dbチューニング
 
Mongo DBを半年運用してみた
Mongo DBを半年運用してみたMongo DBを半年運用してみた
Mongo DBを半年運用してみた
 
MongoDB全機能解説1
MongoDB全機能解説1MongoDB全機能解説1
MongoDB全機能解説1
 

Similar to Mongo dbを半年ちょっと運用してみた

Db tech showcase2015
Db tech showcase2015Db tech showcase2015
Db tech showcase2015
emin_press
 
MongoDB勉強会資料
MongoDB勉強会資料MongoDB勉強会資料
MongoDB勉強会資料
Hiromune Shishido
 
mongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 springmongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 spring
ichikaway
 
Amazon Redshiftへの移行方法と設計のポイント(db tech showcase 2016)
Amazon Redshiftへの移行方法と設計のポイント(db tech showcase 2016)Amazon Redshiftへの移行方法と設計のポイント(db tech showcase 2016)
Amazon Redshiftへの移行方法と設計のポイント(db tech showcase 2016)
Amazon Web Services Japan
 
Ceilometer苦労話
Ceilometer苦労話Ceilometer苦労話
Ceilometer苦労話
Daisuke Matsui
 
便利なHerokuと active recordの 速度改善tips
便利なHerokuと active recordの 速度改善tips便利なHerokuと active recordの 速度改善tips
便利なHerokuと active recordの 速度改善tips
豊明 尾古
 
Mongo dbを知ろう devlove関西
Mongo dbを知ろう   devlove関西Mongo dbを知ろう   devlove関西
Mongo dbを知ろう devlove関西
Ryuji Tamagawa
 
WTM52 あなたの作ったWEBサイト、生きてますか?
WTM52 あなたの作ったWEBサイト、生きてますか?WTM52 あなたの作ったWEBサイト、生きてますか?
WTM52 あなたの作ったWEBサイト、生きてますか?Masanori Oobayashi
 
Mongo db world 2018
Mongo db world 2018Mongo db world 2018
Mongo db world 2018
Creationline,inc.
 
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
infinite_loop
 
静的サイトで書誌1万件チャレンジ.pptx
静的サイトで書誌1万件チャレンジ.pptx静的サイトで書誌1万件チャレンジ.pptx
静的サイトで書誌1万件チャレンジ.pptx
genroku
 

Similar to Mongo dbを半年ちょっと運用してみた (11)

Db tech showcase2015
Db tech showcase2015Db tech showcase2015
Db tech showcase2015
 
MongoDB勉強会資料
MongoDB勉強会資料MongoDB勉強会資料
MongoDB勉強会資料
 
mongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 springmongoDB: OSC Tokyo2010 spring
mongoDB: OSC Tokyo2010 spring
 
Amazon Redshiftへの移行方法と設計のポイント(db tech showcase 2016)
Amazon Redshiftへの移行方法と設計のポイント(db tech showcase 2016)Amazon Redshiftへの移行方法と設計のポイント(db tech showcase 2016)
Amazon Redshiftへの移行方法と設計のポイント(db tech showcase 2016)
 
Ceilometer苦労話
Ceilometer苦労話Ceilometer苦労話
Ceilometer苦労話
 
便利なHerokuと active recordの 速度改善tips
便利なHerokuと active recordの 速度改善tips便利なHerokuと active recordの 速度改善tips
便利なHerokuと active recordの 速度改善tips
 
Mongo dbを知ろう devlove関西
Mongo dbを知ろう   devlove関西Mongo dbを知ろう   devlove関西
Mongo dbを知ろう devlove関西
 
WTM52 あなたの作ったWEBサイト、生きてますか?
WTM52 あなたの作ったWEBサイト、生きてますか?WTM52 あなたの作ったWEBサイト、生きてますか?
WTM52 あなたの作ったWEBサイト、生きてますか?
 
Mongo db world 2018
Mongo db world 2018Mongo db world 2018
Mongo db world 2018
 
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
 
静的サイトで書誌1万件チャレンジ.pptx
静的サイトで書誌1万件チャレンジ.pptx静的サイトで書誌1万件チャレンジ.pptx
静的サイトで書誌1万件チャレンジ.pptx
 

Mongo dbを半年ちょっと運用してみた