SlideShare ist ein Scribd-Unternehmen logo
1 von 56
ソーシャルメディア、 ソーシャルアプリが育てたNoSQL技術 2011/05/17
初めにすこしだけ 本セミナーは3月15日から延期になりましたが 本日開催できたことに感謝します 私は仙台に住んでいます 幸い震災時は東京にいたため、無事でした 家内が仙台の自宅にいましたが、家内も無事で、自宅の被害は少なかったです しかし震災の爪痕は今なお残っています 復興への近道は日本経済が元気になることと思っています 今日お集まりいただいた皆様とともに 日本経済を盛り上げていければと思います
お前、誰よ 株式会社 CyberX 取締役兼CTO 白井 英(しらい すぐる) PHP/JavaScriptがわりと好き 仕事はインフラまわりから PHP/ActionScript3が多い 携帯のソーシャルアプリ黎明期から開発従事 Twitter: @goodoo Blog: http://ameblo.jp/goodoo
ソーシャルアプリといえば?
プラットフォーマーでは DeNAさん GREEさん Mixiさん
memcachedといえば?
Mixiさんの運用事例が有名ですね
今日お話しするのはそこまで大規模な話ではありません
でも、よく陥りがちな話をしたいと思います
CyberXでは携帯のソーシャルアプリを作っています 代表的アプリ「星空バータウン」(mixiモバイル)
「星空バータウン」のmemcachedを切り口とした運用事例・トラブル事例の話をします
Agenda 規模の話 弊社アプリのサーバ構成 memcachedのおさらい 弊社CyberXの運用事例 弊社CyberXのトラブル事例 キャッシュの考え方
規模 超大規模(Google/Facebookクラス) Google サーバ台数100万台以上 Facebook サーバ台数6万台以上 大規模(プラットフォーマクラス) DeNA、Gree、Mixi サーバ台数数千台 数十~数百億PV/Day
「星空バータウン」の規模(1アプリ) ユーザ数約200万人 約10億PV/Month 75万(MonthlyActiveUser) ピーク時のトラフィック200Mbps サーバ台数 約50台 参考【引用元:大規模サービス技術入門】より 2009年のはてなのサービス ユーザ数100万人以上 数十億PV/month ピーク時のトラフィック430Mbps サーバ台数 500台以上
ヒットするソーシャルアプリは2009年当時のはてなに近いインフラ技術が必要
「星空バータウン」サーバ構成 2010/07 Web:30台 Flash合成:3台 Cache:1台 DB:4台
「星空バータウン」アプリ状況 2010/07 ,[object Object],[object Object],[object Object]
「星空バータウン」アプリ状況 2011/05 ,[object Object],[object Object],[object Object]
memcachedの特徴 シンプルなプロトコル 基本 Get、Set 内蔵のオンメモリストレージ 速い、軽い LRU(Least Recently Used) 手軽
「星空バータウン」の運用事例 CyberXのソーシャルアプリはPHPで構築 CakePHPにて実装 PHPのセッション共有にmemcachedを使用 実はPHPのファイルでのセッション管理よりmemcachedのセッション管理のほうが負荷が低い  ⇒ FileI/O > memory R/W
え?これじゃないの? 引用元:「memcachedを知り尽くす » 第1回 memcachedの基本」 http://gihyo.jp/dev/feature/01/memcached/0001
「星空バータウン」の運用事例 DBのデータを見に行ってもデータがDBサーバのメモリに乗っているのであれば、十分なレスポンスを返す innodbは思ったより早い memcachedにSQLの結果をキャッシュさせた別アプリもあるがさほどメリットがなかった むしろmemcachedとして管理するサーバの台数が増え管理コストは増大
memcachedのトラブル
といえば
2010/08/10mixi大規模障害
mixi大規模障害おさらい memcachedの接続限界数に達した時に発生する不具合 接続限界数に達したのちクライアントの切断処理後、新規接続を受け付ける時に、排他制御が崩れる瞬間あり memcachedが落ちる 詳しくは、mixiさんのengineers_blogを参照 http://alpha.mixi.co.jp/blog/?p=2211
mixi大規模障害の教訓 memcachedを運用する場合には -c による接続数の制限はできるだけ大きくする もちろん、CPU/Load/Memory/   cache hit/response timeなどをきちんと監視
いっぽうその頃弊社では・・・・
「教授(※)!    セッションデータがドロップされています!!!」 ※ 私のことです
memcachedでトラブル発生
「星空バータウン」ちょっと恥かしいトラブル事例 セッション管理用のmemcachedサーバにアクセスが集中 なぜかパケットがドロップされはじめる !!!! 次のようなエラーメッセージが・・・・ orz ip_coontrack: maximum limit of 65535 entries exceeded
いいわけ memcachedサーバもグローバルIP接続可能なため、iptablesを動作させていた そのため/proc/net/ip_conntrackにパケット情報を記録 /proc/sys/net/ipv4/ip_conntrack_maxの上限に達してた・・・  ⇒ip_conntrack_maxを2,621,400へ引き上げ
3か月後・・・トラブル再び
「教授(※) !ラック間のトラフィックが通常の3倍です!!!」 ※ 私のことです
「105MBpsだと・・・・」
ラック間通信の帯域圧迫!
「すいません、他にもラック間通信するアプリあるんですけど・・・」
memcachedサーバを追加、分散 トラフィックが特定のラックに集中するのを分散 他のアプリに影響がでるのを回避
弊社トラブルの教訓 当たり前のことをちゃんとやろう Networkまわりのパラメータチューニング 特にiptablesを動かしているなら注意 特定のサーバに処理が集中するのはリスクだよね
弊社おまけのトラブル
TokyoCabinet 64GBの壁事件 FlashデータのキャッシュとしてTokyoTyrant + TokyoCabinetを使用 データ量が日に日に増加 データ容量が64GBを超えたその日・・・・
「教授(※) !Flashのキャッシュ書き込みに失敗します!」 ※ 私のことです
TokyoCabinetのHDBTLARGEオプション 64bit環境で容量64GB以上のTokyoCabinetのデータファイルを扱うには「HDBTLARGE」オプションを指定する必要がある! #opts=l
マニュアルよめ(ry
トラブルの教訓
当たり前のことをちゃんとやろう 大事なことなので2回いいました
最後にNoSQL的観点から弊社のキャッシュの考え方まとめ
NoSQLとDBのすみわけ DBは最終砦 ここがボトルネックにならないように色々な策を打つ とはいえDBもデータがメモリに乗る量なら高速なレスポンスを返す
NoSQLの出番は? 最悪データがロストしてもいいところ セッションデータ トランザクションどうしよう あくまでキャッシュとして割り切ってつかう! ロールバックできなくてもユーザが不利益を被らない処理に利用 ログイン判定のフラグ管理など 一番正しいデータはDB!
まとめ
まとめ ヒットするソーシャルアプリの規模は中~大規模といえる データ量を意識したサーバ構成、ネットワーク構成を memcachedといえど正しく設定、常に監視 設定値、オプションに注意 NoSQLは、弊社ではキャッシュに割り切って使用
ご清聴ありがとうございました
memcachedとトラブルとソーシャルアプリ
memcachedとトラブルとソーシャルアプリ
memcachedとトラブルとソーシャルアプリ
memcachedとトラブルとソーシャルアプリ

Weitere ähnliche Inhalte

Andere mochten auch

ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかAmazon Web Services Japan
 
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情についてあなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情についてShinichi Kozake
 
データベース技術の羅針盤
データベース技術の羅針盤データベース技術の羅針盤
データベース技術の羅針盤Yoshinori Matsunobu
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニックinfinite_loop
 
A Better Cached
A Better CachedA Better Cached
A Better CachedKazuho Oku
 
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事Manabu Koga
 

Andere mochten auch (7)

ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきかElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
ElastiCacheを利用する上でキャッシュをどのように有効に使うべきか
 
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情についてあなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
 
データベース技術の羅針盤
データベース技術の羅針盤データベース技術の羅針盤
データベース技術の羅針盤
 
Prometheus Storage
Prometheus StoragePrometheus Storage
Prometheus Storage
 
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
大規模ソーシャルゲーム開発から学んだPHP&MySQL実践テクニック
 
A Better Cached
A Better CachedA Better Cached
A Better Cached
 
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
サーバー未経験者がソーシャルゲームを通して知ったサーバーの事
 

Ähnlich wie memcachedとトラブルとソーシャルアプリ

Developer networkを活用しよう
Developer networkを活用しようDeveloper networkを活用しよう
Developer networkを活用しようYusuke Suzuki
 
今すぐはじめるIoT_配布用
今すぐはじめるIoT_配布用今すぐはじめるIoT_配布用
今すぐはじめるIoT_配布用Mana Nakano
 
20110309 kohshikai slides
20110309 kohshikai slides20110309 kohshikai slides
20110309 kohshikai slides理栄 山口
 
プレゼン読書会SNS
プレゼン読書会SNSプレゼン読書会SNS
プレゼン読書会SNSTaku Kawamura
 
中国sns勉強会 11月4日
中国sns勉強会 11月4日中国sns勉強会 11月4日
中国sns勉強会 11月4日Shunsuke Oka
 
再就職難の時代だからこそ、出来ること
再就職難の時代だからこそ、出来ること再就職難の時代だからこそ、出来ること
再就職難の時代だからこそ、出来ることYukio Saito
 
もっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますようにもっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますようにTakako Miyagawa
 
チームがリモートで活動するために大事にしている10のことbokete140219
チームがリモートで活動するために大事にしている10のことbokete140219チームがリモートで活動するために大事にしている10のことbokete140219
チームがリモートで活動するために大事にしている10のことbokete140219Osamu Ise
 
what is China`s Social Media ? 中国sns勉強会 11月21日
what is China`s Social Media ?  中国sns勉強会 11月21日what is China`s Social Media ?  中国sns勉強会 11月21日
what is China`s Social Media ? 中国sns勉強会 11月21日Shunsuke Oka
 
浪江タブレット講習会 福島大学災害ボランティアセンター2015/10/07
浪江タブレット講習会 福島大学災害ボランティアセンター2015/10/07浪江タブレット講習会 福島大学災害ボランティアセンター2015/10/07
浪江タブレット講習会 福島大学災害ボランティアセンター2015/10/07CodeforNamie
 
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也Preferred Networks
 

Ähnlich wie memcachedとトラブルとソーシャルアプリ (11)

Developer networkを活用しよう
Developer networkを活用しようDeveloper networkを活用しよう
Developer networkを活用しよう
 
今すぐはじめるIoT_配布用
今すぐはじめるIoT_配布用今すぐはじめるIoT_配布用
今すぐはじめるIoT_配布用
 
20110309 kohshikai slides
20110309 kohshikai slides20110309 kohshikai slides
20110309 kohshikai slides
 
プレゼン読書会SNS
プレゼン読書会SNSプレゼン読書会SNS
プレゼン読書会SNS
 
中国sns勉強会 11月4日
中国sns勉強会 11月4日中国sns勉強会 11月4日
中国sns勉強会 11月4日
 
再就職難の時代だからこそ、出来ること
再就職難の時代だからこそ、出来ること再就職難の時代だからこそ、出来ること
再就職難の時代だからこそ、出来ること
 
もっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますようにもっとドキュメントが日本語になりますように
もっとドキュメントが日本語になりますように
 
チームがリモートで活動するために大事にしている10のことbokete140219
チームがリモートで活動するために大事にしている10のことbokete140219チームがリモートで活動するために大事にしている10のことbokete140219
チームがリモートで活動するために大事にしている10のことbokete140219
 
what is China`s Social Media ? 中国sns勉強会 11月21日
what is China`s Social Media ?  中国sns勉強会 11月21日what is China`s Social Media ?  中国sns勉強会 11月21日
what is China`s Social Media ? 中国sns勉強会 11月21日
 
浪江タブレット講習会 福島大学災害ボランティアセンター2015/10/07
浪江タブレット講習会 福島大学災害ボランティアセンター2015/10/07浪江タブレット講習会 福島大学災害ボランティアセンター2015/10/07
浪江タブレット講習会 福島大学災害ボランティアセンター2015/10/07
 
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
東大大学院 戦略ソフトウェア特論2021「ロボットで世界を計算可能にする」海野裕也
 

Mehr von Suguru Shirai

AWSを使いこなすポイント(仮)
AWSを使いこなすポイント(仮)AWSを使いこなすポイント(仮)
AWSを使いこなすポイント(仮)Suguru Shirai
 
phpstudy_php_to_node
phpstudy_php_to_nodephpstudy_php_to_node
phpstudy_php_to_nodeSuguru Shirai
 
レガシーコード読書会 20120618
レガシーコード読書会 20120618レガシーコード読書会 20120618
レガシーコード読書会 20120618Suguru Shirai
 
リファクタリング読書会20120220
リファクタリング読書会20120220リファクタリング読書会20120220
リファクタリング読書会20120220Suguru Shirai
 
【CyberX読書会】リファクタリング 2012/02/06
【CyberX読書会】リファクタリング 2012/02/06【CyberX読書会】リファクタリング 2012/02/06
【CyberX読書会】リファクタリング 2012/02/06Suguru Shirai
 
Tuiningathonにいってみた
TuiningathonにいってみたTuiningathonにいってみた
TuiningathonにいってみたSuguru Shirai
 

Mehr von Suguru Shirai (6)

AWSを使いこなすポイント(仮)
AWSを使いこなすポイント(仮)AWSを使いこなすポイント(仮)
AWSを使いこなすポイント(仮)
 
phpstudy_php_to_node
phpstudy_php_to_nodephpstudy_php_to_node
phpstudy_php_to_node
 
レガシーコード読書会 20120618
レガシーコード読書会 20120618レガシーコード読書会 20120618
レガシーコード読書会 20120618
 
リファクタリング読書会20120220
リファクタリング読書会20120220リファクタリング読書会20120220
リファクタリング読書会20120220
 
【CyberX読書会】リファクタリング 2012/02/06
【CyberX読書会】リファクタリング 2012/02/06【CyberX読書会】リファクタリング 2012/02/06
【CyberX読書会】リファクタリング 2012/02/06
 
Tuiningathonにいってみた
TuiningathonにいってみたTuiningathonにいってみた
Tuiningathonにいってみた
 

Kürzlich hochgeladen

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 

Kürzlich hochgeladen (8)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 

memcachedとトラブルとソーシャルアプリ