SlideShare a Scribd company logo
Copyright © GREE, Inc. All Rights Reserved.
MySQLやSSDとかの話
前編
Takanori Sejima
Copyright © GREE, Inc. All Rights Reserved.
自己紹介
● わりとMySQLのひと
● 3.23.58 から使ってる
● むかしは Resource Monitoring も力入れてやってた
● ganglia & rrdcached の(たぶん)ヘビーユーザ
● 5年くらい前から使い始めた
● gmond は素のまま使ってる
● gmetad は欲しい機能がなかったので patch 書いた
● webfrontend はほぼ書き直した
● あとはひたすら python module 書いた
● ganglia じゃなくても良かったんだけど、とにかく rrdcached を使いたかった
● というわけで、自分は Monitoring を大事にする
● 一時期は Flare という OSS の bugfix などもやってた
Copyright © GREE, Inc. All Rights Reserved.
● 古いサーバを、新しくて性能の良いサーバに置き換えていく際、いろいろ工
夫して集約していっているのですが
● そのあたりの背景や取り組みなどについて、本日はお話しようと思います
● オンプレミス環境の話になっちゃうんですが
● 一部は、オンプレミス環境じゃなくても応用が効くと思います
● あと、いろいろ変なことやってますが、わたしはだいたい考えただけで
● 実働部隊は優秀な若者たちがいて、細かいところは彼らががんばってくれ
てます
本日のお話
Copyright © GREE, Inc. All Rights Reserved.
● 最近の HW や InnoDB の I/O 周りについて考えつつ、取り組んでおり
まして
● さいきん、そのあたりを資料にまとめて slideshare で公開しております
● 後日、あわせて読んでいただけると、よりわかりやすいかと思います
● 参考:
● 5.6以前の InnoDB Flushing
● CPUに関する話
● EthernetやCPUなどの話
本日のお話の補足資料
Copyright © GREE, Inc. All Rights Reserved.
では
はじめます
Copyright © GREE, Inc. All Rights Reserved.
● GREEのサービスは歴史が古い
● 古いサービスはコードが密結合な部分がある
● むかしから動いてるMySQLのサーバは、かなり sharding されていた
● 2000年代、GREEは SAS HDD 146GB 15krpm * 4本使ったRAID10の前提で、
データベースを設計してるところが多かった
● そういうストレージでも動くように、データベースのサイズは100-200GB以下のものが
多かった
● わたしが入社した2010年のころはよくサービスささっていて、各エンジニア
が協力して改善してた
● アプリケーションレイヤーでがんばってもらったり、力の限りsharding したり
● わたしは、 ganglia で問題切り分けて、チューニングなどに力いれた
背景
Copyright © GREE, Inc. All Rights Reserved.
● わたしが入社する前からノウハウがあって、ガンガンshardingして
master切り替えてたそうで
● 具体的には次のように
● 先ずはサービス無停止で master 切換する方法から説明します
どんなふうに sharding していたかというと
Copyright © GREE, Inc. All Rights Reserved.
Master切り替え前
Copyright © GREE, Inc. All Rights Reserved.
Master切り替え(参照切り替え)
※DNSないし設定ファイルなどで切り替え
Copyright © GREE, Inc. All Rights Reserved.
Master切り替え(auto_increment更新)
Copyright © GREE, Inc. All Rights Reserved.
Master切り替え(更新切り替え)
Copyright © GREE, Inc. All Rights Reserved.
● masterを切り替えた後に、古いmasterに対してINSERTが実行されたと
きのための対策
● 例えば、次のような状態になっていれば、auto_increment の値は
duplicate しない
● 旧master にINSERTすると、auto_increment のカラムは101以降の値を発番する
● 新master にINSERTすると、auto_increment のカラムは131以降の値を発番する
● 新masterには、master切り替えが完了するまでの間、
auto_incrementの値がduplicateしない程度の値を、
INSERT&DELETEし、 auto_increment の値を更新しておく
● master切り替えの間、更新を完全にブロックできるなら、やらなくてもいい
auto_increment更新する理由
Copyright © GREE, Inc. All Rights Reserved.
DBの分割は次のように
--replicate-do-table でもOK
Copyright © GREE, Inc. All Rights Reserved.
TRIGGERで可能性が広がる
SBRでTRIGGERを実行させ、新しいtableへの更新はRBRで複製
Copyright © GREE, Inc. All Rights Reserved.
● database や table を最初からある程度分割しておいたほうが、 --
replicate-do-db や --replicate-do-table で簡単に分割できるけど
● TRIGGER 使って table を分割することもできる
● binlog_format=’STATEMENT’ だと、 TRIGGER によって発生した binlog event
は binary log に落ちないけど、 binlog_format=’ROW’ だと binary log に落ち
る。
● それらを組み合わせることによって、TRIGGER によって更新された table だけ
replication することが可能
● サービス無停止で column の追加や削除などにも対応できるので、
statement-based replication (& --log-slave-updates)&
TRIGGER の組み合わせは、切り札として有用
sharding は後からでもできる
Copyright © GREE, Inc. All Rights Reserved.
● サーバを並べることによって、むかしより安定稼働するようにはなったんだ
けど
● SSDを導入して活用したいという機運があった
● 個人的には、MySQLのボトルネックを、 CPU とメモリの問題にできるようにしていきたい
気持ちがあった。ストレージ速くなったし、Xeon は Core の数増え続けてたし、MySQL
はバージョン上がるごとに、CPUスケーラビリティを改善し続けていたので。
そんな感じで、サービスとしては改善したんだけど
Copyright © GREE, Inc. All Rights Reserved.
● 「MySQLのバージョンが上がってN倍性能が良くなった」というのは
● (ほとんどの場合)MySQLがたくさんのCPUを活用できるようになって、ス
ループットが改善していってるという話だと
● InnoDB Adaptive Flushing などの改善もありますけどね
● MySQL5.5あたりから強く意識するようになった
● それまでは、とにかくHDDが圧倒的に遅かったけど
● SSDの登場により、CPUとメモリがボトルネックになるケースを、強く意識し
始めた
強く意識したのは、 MySQL5.5 あたりから
Copyright © GREE, Inc. All Rights Reserved.
● Fusion-IO 流行し始めたころ、調達できたのは ioDrive MLC 320GB
● 先ずは KVS に投入したり、 sharding が困難だったDBに投入したけど
● ほとんどのDBはHDDでも動くように sharding したり、アプリケーション
工夫したりしていたから、 320GB という容量は使いドコロが難しかった
● また、当時はHDDのサーバが大量にあったので、 ioDrive に依存した設
計にしてしまうと、今後どれだけリプレースすればいいの、という恐れもあっ
た
● 他社のワークロードとGREEのワークロード違うから、他社の事例は参考
にしにくかった
先ずは ioDrive 導入した
Copyright © GREE, Inc. All Rights Reserved.
● 当時、GREEで使ってたHDDのサーバと比較して、 ioDrive のサーバは
コスト的に三倍くらいだったので、三倍以上の成果を挙げさせたいという前
提のもと
● 他のサーバの三倍以上のqueryを受けさせるために
● GREEのDBサーバに求められる要件を分析し、考えていった
三倍の仕事をさせるために
Copyright © GREE, Inc. All Rights Reserved.
そして
ひらめいた
Copyright © GREE, Inc. All Rights Reserved.
● GREEのアプリケーションサーバはコネクションプーリングをしておらず、リ
クエストが来るごとにコネクションを張り、レスポンスを返すごとにコネクショ
ン切っていて
● これは当時そこまで珍しくない実装だと思うけど
● 不幸なことに、共通系のDBなるものが存在して
● 特定のサービスでDBがささると、共通系のDBへのコネクションが溜まって
いって、 too many connections が発生し
● 他のサービスが巻き込まれてしまうという負の連鎖
密結合ゆえの問題を軽減しよう
Copyright © GREE, Inc. All Rights Reserved.
(とてもざっくり)図にするとこう
Copyright © GREE, Inc. All Rights Reserved.
● too many connections を避けるため、HDDのサーバをたくさん並べ
て、たくさんの connection 受けられるようにするとか
● 重要なサービスと内製ゲームで、slaveのクラスタを分けるとかして
● 数の暴力で解決してたんだけど
かつては富豪的に解決してた
Copyright © GREE, Inc. All Rights Reserved.
例えば、次のように分けていた
Copyright © GREE, Inc. All Rights Reserved.
この状況を
ioDriveの低latencyで
なんとかする
Copyright © GREE, Inc. All Rights Reserved.
● ioDrive や一般的な PCI-e SSD は、 latency が異常によい
● これは現代においても言える、オンプレミス環境のメリット
● ストレージというより、「ちょっと遅いメモリ」と考える
● ちょっと遅いメモリなので、 buffer pool のヒット率を少し下げても大丈夫
● ピークタイムに、ユーザのデータの大半がヒットするなら、性能あまり変わらない
● buffer pool の割当を意図的に減らして、そのぶん max_connections
を増やす。具体的にはHDDのサーバの三倍以上に上げる
● (高価だから)それほど多くないDRAM、 latency のすぐれた ioDrive と
いう組み合わせで、HDDのサーバの三倍以上のqueryを受けさせて、
MySQLのCPU利用率引き上げる
buffer pool のヒット率をうまく下げる
Copyright © GREE, Inc. All Rights Reserved.
● slave は O_DIRECT 使えばメモリあけられるけど
● master は binlog が page cache に乗り続けてしまう
● そこで、 buffer pool の割当減らしてる master では、 cron で
posix_fadvise(2) たたいて、古い binlog は page cache からちょっ
とずつ落とすようにしてます。
● (言語はなんでもいいんですけど) いまのところ ruby で IO#advise つ
かって :dontneed 叩いてます。
ちょっと一工夫
Copyright © GREE, Inc. All Rights Reserved.
● ioDriveのサーバ1台と、HDDのサーバ三台程度を等価交換できるように
した
● どうしても I/O の性能が必要になった場合、 ioDrive のサーバを、大量
にある HDD のサーバ三台で置き換えることによって確保できるように
● むかしからあるHDDなサーバの在庫も活用できるように
● これで、 ioDrive のサーバの稼働台数を増やすことが可能になった
● ioDrive たくさん使うことによって、どんなふうに故障するのかがわかって
きた
● ハードウェアは故障するまで使わないと、次のステージに踏み込めない
HDDのサーバとの互換性
Copyright © GREE, Inc. All Rights Reserved.
よし、壊したから、
次のことを考えよう
Copyright © GREE, Inc. All Rights Reserved.
● 時は流れ、NAND Flash の価格が下がり、大容量化が進んでいった
● 800GB以上のエンタープライズ仕様のSSDが普通に買えるようになった
● これは使いたい
● 当時、容量大きいSSD使ってる他社事例それほど多くは聞かなかったので、使ってやり
たい
● いまは珍しく無いと思いますけど
● 他社が活用できてないものを活用することによって、サービスの競争力を向上させる
● かつて、masterはHDD、slaveは一台の物理サーバに複数mysqld起
動してSSDで集約するという他社事例あったけど、それだと運用の手間が
増えるし、 Monitoring が難しくなるなと思った
NAND Flash の価格が下がってきた
Copyright © GREE, Inc. All Rights Reserved.
● 高い random I/O 性能というのもあるけれど
● HDDと比べて消費電力が低く、熱にも強い
● 消費電力が少ないので、それだけ一つのラックにたくさんのサーバ積める
ようになるし
● TurboBoost 使って clock あげて、CPUぶん回してやることもやりやすく
なる
● かつてHDDのために使っていた電力を、より多くのCPUのために使う
● ラック単位で電力を考えたとき、ストレージよりもCPUに多くの電力を回す
ようにする
そもそも、NAND Flash は何がうれしいか
Copyright © GREE, Inc. All Rights Reserved.
● GREEは力の限り sharding してしまっている
● SSDにリプレースしなくても動かせるDBが大量にある
● 100-200GB程度しかないDBでは、800GBのSSDは無用の長物ではな
かろうか?
だがしかし
Copyright © GREE, Inc. All Rights Reserved.
こんなことも
あろうかと
Copyright © GREE, Inc. All Rights Reserved.
ずいぶん
前から
Copyright © GREE, Inc. All Rights Reserved.
考えていたこと
があった
Copyright © GREE, Inc. All Rights Reserved.
そうだ
Copyright © GREE, Inc. All Rights Reserved.
サービス無停止で
master統合しよう
Copyright © GREE, Inc. All Rights Reserved.
● DBが100-200GB程度しかないなら、統合して400GB以上にしてしまえ
ばいい
● 具体的には次のように
master切り替えの手法を踏まえて
Copyright © GREE, Inc. All Rights Reserved.
Master統合
Copyright © GREE, Inc. All Rights Reserved.
Master統合
Copyright © GREE, Inc. All Rights Reserved.
Master統合
Copyright © GREE, Inc. All Rights Reserved.
Master統合
Copyright © GREE, Inc. All Rights Reserved.
Master統合
Copyright © GREE, Inc. All Rights Reserved.
Master統合
Copyright © GREE, Inc. All Rights Reserved.
Master統合
Copyright © GREE, Inc. All Rights Reserved.
Master統合
Copyright © GREE, Inc. All Rights Reserved.
● New Master -> New Slave 間で、全力で binary log が転送されて
しまうケースがあった。ネットワークの帯域を圧迫するのがコワイ
● いろいろ改善策はあると思うけど
● slave_compressed_protocol がお手軽でいいかも
● いつもは有効にしたくないなら、 dump 流しこむときだけ有効にしても良
い
● 動的に変更できるので便利
mysqldump の結果を流しこむときに
Copyright © GREE, Inc. All Rights Reserved.
● change master したあとに start slave すると、一気に binary log
転送され、一気に binary log を SQL_Thread が処理してしまうので
● ここで書いたスクリプト 使って、ちょっとずつ binary log 転送して、ちょっ
とずつ binary log を適用させるように
● あと、 binary log は大き過ぎない方が良い感じ
● 弊社の場合は 200MB 程度にしてます
ちょっとだけ工夫
Copyright © GREE, Inc. All Rights Reserved.
● 次の課題が見えてきた
これでいいかと思いきや
Copyright © GREE, Inc. All Rights Reserved.
続きは
後編で
Copyright © GREE, Inc. All Rights Reserved.
つづく

More Related Content

What's hot

Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
Etsuji Nakai
 
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
 
AWS X-Rayによるアプリケーションの分析とデバッグ
AWS X-Rayによるアプリケーションの分析とデバッグAWS X-Rayによるアプリケーションの分析とデバッグ
AWS X-Rayによるアプリケーションの分析とデバッグ
Amazon Web Services Japan
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
Yuki Morishita
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
Preferred Networks
 
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
NTT DATA Technology & Innovation
 
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
Amazon Web Services Japan
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
Y Watanabe
 
KubernetesでRedisを使うときの選択肢
KubernetesでRedisを使うときの選択肢KubernetesでRedisを使うときの選択肢
KubernetesでRedisを使うときの選択肢
Naoyuki Yamada
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
Kumazaki Hiroki
 
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSSYahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
Yahoo!デベロッパーネットワーク
 
RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門
Yuki Morishita
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
Hironobu Suzuki
 
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
NTT DATA Technology & Innovation
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
Kumazaki Hiroki
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
 
Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例
gree_tech
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
NTT DATA Technology & Innovation
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版
LINE Corporation
 

What's hot (20)

Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
 
AWS X-Rayによるアプリケーションの分析とデバッグ
AWS X-Rayによるアプリケーションの分析とデバッグAWS X-Rayによるアプリケーションの分析とデバッグ
AWS X-Rayによるアプリケーションの分析とデバッグ
 
Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編Cassandraのしくみ データの読み書き編
Cassandraのしくみ データの読み書き編
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
PostgreSQL開発コミュニティに参加しよう!(PostgreSQL Conference Japan 2021 発表資料)
 
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
 
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキーWhere狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
KubernetesでRedisを使うときの選択肢
KubernetesでRedisを使うときの選択肢KubernetesでRedisを使うときの選択肢
KubernetesでRedisを使うときの選択肢
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
 
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSSYahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
 
RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門RDB開発者のためのApache Cassandra データモデリング入門
RDB開発者のためのApache Cassandra データモデリング入門
 
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
PostgreSQLのリカバリ超入門(もしくはWAL、CHECKPOINT、オンラインバックアップの仕組み)
 
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
コンテナとimmutableとわたし。あとセキュリティ。(Kubernetes Novice Tokyo #15 発表資料)
 
本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
 
LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版LINEのMySQL運用について 修正版
LINEのMySQL運用について 修正版
 

Viewers also liked

MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編
Takanori Sejima
 
Advanced technic for OS upgrading in 3 minutes
Advanced technic for OS upgrading in 3 minutesAdvanced technic for OS upgrading in 3 minutes
Advanced technic for OS upgrading in 3 minutes
Hiroshi SHIBATA
 
Chunked encoding を使った高速化の考察
Chunked encoding を使った高速化の考察Chunked encoding を使った高速化の考察
Chunked encoding を使った高速化の考察
Yoshiki Shibukawa
 
性能測定道 事始め編
性能測定道 事始め編性能測定道 事始め編
性能測定道 事始め編
Yuto Hayamizu
 
Cephを用いたwordpressの構築[LT版]
Cephを用いたwordpressの構築[LT版] Cephを用いたwordpressの構築[LT版]
Cephを用いたwordpressの構築[LT版]
Kat 0gm
 
Prometheus触ってみた
Prometheus触ってみたPrometheus触ってみた
Prometheus触ってみた
Sho2010
 
性能測定道 実践編
性能測定道 実践編性能測定道 実践編
性能測定道 実践編
Yuto Hayamizu
 
Web現場Meetup #2 圧倒的成長環境の作り方
Web現場Meetup #2 圧倒的成長環境の作り方Web現場Meetup #2 圧倒的成長環境の作り方
Web現場Meetup #2 圧倒的成長環境の作り方
kaiba d
 
スクラムを導入してみて一回挫折したけど再起させた話
スクラムを導入してみて一回挫折したけど再起させた話スクラムを導入してみて一回挫折したけど再起させた話
スクラムを導入してみて一回挫折したけど再起させた話
PIXTA Inc.
 
情報科学における18のメタテクニック
情報科学における18のメタテクニック情報科学における18のメタテクニック
情報科学における18のメタテクニック
nakano_lab
 
サービスのスケール化のための検索システム改善
サービスのスケール化のための検索システム改善サービスのスケール化のための検索システム改善
サービスのスケール化のための検索システム改善
PIXTA Inc.
 
ウェブエンジニアのための色の話
ウェブエンジニアのための色の話ウェブエンジニアのための色の話
ウェブエンジニアのための色の話
Kazuyuki CHINDA
 
プロダクトに 1 から Vue.js を導入した話
プロダクトに 1 から Vue.js を導入した話プロダクトに 1 から Vue.js を導入した話
プロダクトに 1 から Vue.js を導入した話
Shohei Okada
 
エフェクト用 Shader 機能紹介
エフェクト用 Shader 機能紹介エフェクト用 Shader 機能紹介
エフェクト用 Shader 機能紹介
Hajime Sanno
 
5年しかもたない最高のシステムとの向き合い方
5年しかもたない最高のシステムとの向き合い方5年しかもたない最高のシステムとの向き合い方
5年しかもたない最高のシステムとの向き合い方
Jumpei iwamura
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907
NodejsFoundation
 
エンジニアがデザインやってみた @ Aimning MeetUp 2017/10
エンジニアがデザインやってみた @ Aimning MeetUp 2017/10エンジニアがデザインやってみた @ Aimning MeetUp 2017/10
エンジニアがデザインやってみた @ Aimning MeetUp 2017/10
Hidenori Doi
 
エフェクトにしっかり色を付ける方法
エフェクトにしっかり色を付ける方法エフェクトにしっかり色を付ける方法
エフェクトにしっかり色を付ける方法
kmasaki
 
Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기
JeongHun Byeon
 
スマホゲームのUI仕様書
スマホゲームのUI仕様書スマホゲームのUI仕様書
スマホゲームのUI仕様書
Katsumi Mizushima
 

Viewers also liked (20)

MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編MySQLやSSDとかの話 後編
MySQLやSSDとかの話 後編
 
Advanced technic for OS upgrading in 3 minutes
Advanced technic for OS upgrading in 3 minutesAdvanced technic for OS upgrading in 3 minutes
Advanced technic for OS upgrading in 3 minutes
 
Chunked encoding を使った高速化の考察
Chunked encoding を使った高速化の考察Chunked encoding を使った高速化の考察
Chunked encoding を使った高速化の考察
 
性能測定道 事始め編
性能測定道 事始め編性能測定道 事始め編
性能測定道 事始め編
 
Cephを用いたwordpressの構築[LT版]
Cephを用いたwordpressの構築[LT版] Cephを用いたwordpressの構築[LT版]
Cephを用いたwordpressの構築[LT版]
 
Prometheus触ってみた
Prometheus触ってみたPrometheus触ってみた
Prometheus触ってみた
 
性能測定道 実践編
性能測定道 実践編性能測定道 実践編
性能測定道 実践編
 
Web現場Meetup #2 圧倒的成長環境の作り方
Web現場Meetup #2 圧倒的成長環境の作り方Web現場Meetup #2 圧倒的成長環境の作り方
Web現場Meetup #2 圧倒的成長環境の作り方
 
スクラムを導入してみて一回挫折したけど再起させた話
スクラムを導入してみて一回挫折したけど再起させた話スクラムを導入してみて一回挫折したけど再起させた話
スクラムを導入してみて一回挫折したけど再起させた話
 
情報科学における18のメタテクニック
情報科学における18のメタテクニック情報科学における18のメタテクニック
情報科学における18のメタテクニック
 
サービスのスケール化のための検索システム改善
サービスのスケール化のための検索システム改善サービスのスケール化のための検索システム改善
サービスのスケール化のための検索システム改善
 
ウェブエンジニアのための色の話
ウェブエンジニアのための色の話ウェブエンジニアのための色の話
ウェブエンジニアのための色の話
 
プロダクトに 1 から Vue.js を導入した話
プロダクトに 1 から Vue.js を導入した話プロダクトに 1 から Vue.js を導入した話
プロダクトに 1 から Vue.js を導入した話
 
エフェクト用 Shader 機能紹介
エフェクト用 Shader 機能紹介エフェクト用 Shader 機能紹介
エフェクト用 Shader 機能紹介
 
5年しかもたない最高のシステムとの向き合い方
5年しかもたない最高のシステムとの向き合い方5年しかもたない最高のシステムとの向き合い方
5年しかもたない最高のシステムとの向き合い方
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907
 
エンジニアがデザインやってみた @ Aimning MeetUp 2017/10
エンジニアがデザインやってみた @ Aimning MeetUp 2017/10エンジニアがデザインやってみた @ Aimning MeetUp 2017/10
エンジニアがデザインやってみた @ Aimning MeetUp 2017/10
 
エフェクトにしっかり色を付ける方法
エフェクトにしっかり色を付ける方法エフェクトにしっかり色を付ける方法
エフェクトにしっかり色を付ける方法
 
Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기
 
スマホゲームのUI仕様書
スマホゲームのUI仕様書スマホゲームのUI仕様書
スマホゲームのUI仕様書
 

Similar to MySQLやSSDとかの話 前編

MySQLやSSDとかの話・後編
MySQLやSSDとかの話・後編MySQLやSSDとかの話・後編
MySQLやSSDとかの話・後編
gree_tech
 
MySQLやSSDとかの話・前編
MySQLやSSDとかの話・前編MySQLやSSDとかの話・前編
MySQLやSSDとかの話・前編
gree_tech
 
sysloadや監視などの話(仮)
sysloadや監視などの話(仮)sysloadや監視などの話(仮)
sysloadや監視などの話(仮)
Takanori Sejima
 
さいきんのMySQLに関する取り組み(仮)
さいきんのMySQLに関する取り組み(仮)さいきんのMySQLに関する取り組み(仮)
さいきんのMySQLに関する取り組み(仮)
Takanori Sejima
 
OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾外道 父
 
GAE + Spannerで目指せ No (Uncomfortable) Ops
GAE + Spannerで目指せ No (Uncomfortable) OpsGAE + Spannerで目指せ No (Uncomfortable) Ops
GAE + Spannerで目指せ No (Uncomfortable) Ops
Miniascape
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
terurou
 
Azure aws違い
Azure aws違いAzure aws違い
Azure aws違い
Masanobu Sato
 
Devsの常識、DBAは非常識
Devsの常識、DBAは非常識Devsの常識、DBAは非常識
Devsの常識、DBAは非常識
yoku0825
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
NTT DATA Technology & Innovation
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA OSS Professional Services
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
Masahiko Sawada
 
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話nekogeruge_987
 
20170329_BigData基盤研究会#7
20170329_BigData基盤研究会#720170329_BigData基盤研究会#7
20170329_BigData基盤研究会#7
Kohei KaiGai
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
NTT DATA OSS Professional Services
 
GresCubeで快適PostgreSQLライフ
GresCubeで快適PostgreSQLライフGresCubeで快適PostgreSQLライフ
GresCubeで快適PostgreSQLライフ
NTT DATA OSS Professional Services
 
nginxの紹介
nginxの紹介nginxの紹介
nginxの紹介
Takashi Takizawa
 
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo NagataInsight Technology, Inc.
 
AWS上で使えるストレージ十番勝負
AWS上で使えるストレージ十番勝負AWS上で使えるストレージ十番勝負
AWS上で使えるストレージ十番勝負
Akio Katayama
 

Similar to MySQLやSSDとかの話 前編 (20)

MySQLやSSDとかの話・後編
MySQLやSSDとかの話・後編MySQLやSSDとかの話・後編
MySQLやSSDとかの話・後編
 
MySQLやSSDとかの話・前編
MySQLやSSDとかの話・前編MySQLやSSDとかの話・前編
MySQLやSSDとかの話・前編
 
sysloadや監視などの話(仮)
sysloadや監視などの話(仮)sysloadや監視などの話(仮)
sysloadや監視などの話(仮)
 
さいきんのMySQLに関する取り組み(仮)
さいきんのMySQLに関する取り組み(仮)さいきんのMySQLに関する取り組み(仮)
さいきんのMySQLに関する取り組み(仮)
 
OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾OpenStackでつくる開発環境と外道塾
OpenStackでつくる開発環境と外道塾
 
GAE + Spannerで目指せ No (Uncomfortable) Ops
GAE + Spannerで目指せ No (Uncomfortable) OpsGAE + Spannerで目指せ No (Uncomfortable) Ops
GAE + Spannerで目指せ No (Uncomfortable) Ops
 
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
スマートフォン×Cassandraによるハイパフォーマンス基盤の構築事例
 
Azure aws違い
Azure aws違いAzure aws違い
Azure aws違い
 
Devsの常識、DBAは非常識
Devsの常識、DBAは非常識Devsの常識、DBAは非常識
Devsの常識、DBAは非常識
 
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
 
NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦NTT DATA と PostgreSQL が挑んだ総力戦
NTT DATA と PostgreSQL が挑んだ総力戦
 
PostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラPostgreSQLの運用・監視にまつわるエトセトラ
PostgreSQLの運用・監視にまつわるエトセトラ
 
PostgreSQLでスケールアウト
PostgreSQLでスケールアウトPostgreSQLでスケールアウト
PostgreSQLでスケールアウト
 
レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話レガシーシステムのDBマイグレーションし始めた話
レガシーシステムのDBマイグレーションし始めた話
 
20170329_BigData基盤研究会#7
20170329_BigData基盤研究会#720170329_BigData基盤研究会#7
20170329_BigData基盤研究会#7
 
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイントPostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
PostgreSQL10を導入!大規模データ分析事例からみるDWHとしてのPostgreSQL活用のポイント
 
GresCubeで快適PostgreSQLライフ
GresCubeで快適PostgreSQLライフGresCubeで快適PostgreSQLライフ
GresCubeで快適PostgreSQLライフ
 
nginxの紹介
nginxの紹介nginxの紹介
nginxの紹介
 
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
 
AWS上で使えるストレージ十番勝負
AWS上で使えるストレージ十番勝負AWS上で使えるストレージ十番勝負
AWS上で使えるストレージ十番勝負
 

More from Takanori Sejima

TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話
Takanori Sejima
 
binary log と 2PC と Group Commit
binary log と 2PC と Group Commitbinary log と 2PC と Group Commit
binary log と 2PC と Group Commit
Takanori Sejima
 
MySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slaveMySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slave
Takanori Sejima
 
InnoDB Table Compression
InnoDB Table CompressionInnoDB Table Compression
InnoDB Table Compression
Takanori Sejima
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話
Takanori Sejima
 
CPUに関する話
CPUに関する話CPUに関する話
CPUに関する話
Takanori Sejima
 
5.6 以前の InnoDB Flushing
5.6 以前の InnoDB Flushing5.6 以前の InnoDB Flushing
5.6 以前の InnoDB Flushing
Takanori Sejima
 

More from Takanori Sejima (7)

TIME_WAITに関する話
TIME_WAITに関する話TIME_WAITに関する話
TIME_WAITに関する話
 
binary log と 2PC と Group Commit
binary log と 2PC と Group Commitbinary log と 2PC と Group Commit
binary log と 2PC と Group Commit
 
MySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slaveMySQL5.7 GA の Multi-threaded slave
MySQL5.7 GA の Multi-threaded slave
 
InnoDB Table Compression
InnoDB Table CompressionInnoDB Table Compression
InnoDB Table Compression
 
EthernetやCPUなどの話
EthernetやCPUなどの話EthernetやCPUなどの話
EthernetやCPUなどの話
 
CPUに関する話
CPUに関する話CPUに関する話
CPUに関する話
 
5.6 以前の InnoDB Flushing
5.6 以前の InnoDB Flushing5.6 以前の InnoDB Flushing
5.6 以前の InnoDB Flushing
 

Recently uploaded

LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 

Recently uploaded (16)

LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 

MySQLやSSDとかの話 前編

  • 1. Copyright © GREE, Inc. All Rights Reserved. MySQLやSSDとかの話 前編 Takanori Sejima
  • 2. Copyright © GREE, Inc. All Rights Reserved. 自己紹介 ● わりとMySQLのひと ● 3.23.58 から使ってる ● むかしは Resource Monitoring も力入れてやってた ● ganglia & rrdcached の(たぶん)ヘビーユーザ ● 5年くらい前から使い始めた ● gmond は素のまま使ってる ● gmetad は欲しい機能がなかったので patch 書いた ● webfrontend はほぼ書き直した ● あとはひたすら python module 書いた ● ganglia じゃなくても良かったんだけど、とにかく rrdcached を使いたかった ● というわけで、自分は Monitoring を大事にする ● 一時期は Flare という OSS の bugfix などもやってた
  • 3. Copyright © GREE, Inc. All Rights Reserved. ● 古いサーバを、新しくて性能の良いサーバに置き換えていく際、いろいろ工 夫して集約していっているのですが ● そのあたりの背景や取り組みなどについて、本日はお話しようと思います ● オンプレミス環境の話になっちゃうんですが ● 一部は、オンプレミス環境じゃなくても応用が効くと思います ● あと、いろいろ変なことやってますが、わたしはだいたい考えただけで ● 実働部隊は優秀な若者たちがいて、細かいところは彼らががんばってくれ てます 本日のお話
  • 4. Copyright © GREE, Inc. All Rights Reserved. ● 最近の HW や InnoDB の I/O 周りについて考えつつ、取り組んでおり まして ● さいきん、そのあたりを資料にまとめて slideshare で公開しております ● 後日、あわせて読んでいただけると、よりわかりやすいかと思います ● 参考: ● 5.6以前の InnoDB Flushing ● CPUに関する話 ● EthernetやCPUなどの話 本日のお話の補足資料
  • 5. Copyright © GREE, Inc. All Rights Reserved. では はじめます
  • 6. Copyright © GREE, Inc. All Rights Reserved. ● GREEのサービスは歴史が古い ● 古いサービスはコードが密結合な部分がある ● むかしから動いてるMySQLのサーバは、かなり sharding されていた ● 2000年代、GREEは SAS HDD 146GB 15krpm * 4本使ったRAID10の前提で、 データベースを設計してるところが多かった ● そういうストレージでも動くように、データベースのサイズは100-200GB以下のものが 多かった ● わたしが入社した2010年のころはよくサービスささっていて、各エンジニア が協力して改善してた ● アプリケーションレイヤーでがんばってもらったり、力の限りsharding したり ● わたしは、 ganglia で問題切り分けて、チューニングなどに力いれた 背景
  • 7. Copyright © GREE, Inc. All Rights Reserved. ● わたしが入社する前からノウハウがあって、ガンガンshardingして master切り替えてたそうで ● 具体的には次のように ● 先ずはサービス無停止で master 切換する方法から説明します どんなふうに sharding していたかというと
  • 8. Copyright © GREE, Inc. All Rights Reserved. Master切り替え前
  • 9. Copyright © GREE, Inc. All Rights Reserved. Master切り替え(参照切り替え) ※DNSないし設定ファイルなどで切り替え
  • 10. Copyright © GREE, Inc. All Rights Reserved. Master切り替え(auto_increment更新)
  • 11. Copyright © GREE, Inc. All Rights Reserved. Master切り替え(更新切り替え)
  • 12. Copyright © GREE, Inc. All Rights Reserved. ● masterを切り替えた後に、古いmasterに対してINSERTが実行されたと きのための対策 ● 例えば、次のような状態になっていれば、auto_increment の値は duplicate しない ● 旧master にINSERTすると、auto_increment のカラムは101以降の値を発番する ● 新master にINSERTすると、auto_increment のカラムは131以降の値を発番する ● 新masterには、master切り替えが完了するまでの間、 auto_incrementの値がduplicateしない程度の値を、 INSERT&DELETEし、 auto_increment の値を更新しておく ● master切り替えの間、更新を完全にブロックできるなら、やらなくてもいい auto_increment更新する理由
  • 13. Copyright © GREE, Inc. All Rights Reserved. DBの分割は次のように --replicate-do-table でもOK
  • 14. Copyright © GREE, Inc. All Rights Reserved. TRIGGERで可能性が広がる SBRでTRIGGERを実行させ、新しいtableへの更新はRBRで複製
  • 15. Copyright © GREE, Inc. All Rights Reserved. ● database や table を最初からある程度分割しておいたほうが、 -- replicate-do-db や --replicate-do-table で簡単に分割できるけど ● TRIGGER 使って table を分割することもできる ● binlog_format=’STATEMENT’ だと、 TRIGGER によって発生した binlog event は binary log に落ちないけど、 binlog_format=’ROW’ だと binary log に落ち る。 ● それらを組み合わせることによって、TRIGGER によって更新された table だけ replication することが可能 ● サービス無停止で column の追加や削除などにも対応できるので、 statement-based replication (& --log-slave-updates)& TRIGGER の組み合わせは、切り札として有用 sharding は後からでもできる
  • 16. Copyright © GREE, Inc. All Rights Reserved. ● サーバを並べることによって、むかしより安定稼働するようにはなったんだ けど ● SSDを導入して活用したいという機運があった ● 個人的には、MySQLのボトルネックを、 CPU とメモリの問題にできるようにしていきたい 気持ちがあった。ストレージ速くなったし、Xeon は Core の数増え続けてたし、MySQL はバージョン上がるごとに、CPUスケーラビリティを改善し続けていたので。 そんな感じで、サービスとしては改善したんだけど
  • 17. Copyright © GREE, Inc. All Rights Reserved. ● 「MySQLのバージョンが上がってN倍性能が良くなった」というのは ● (ほとんどの場合)MySQLがたくさんのCPUを活用できるようになって、ス ループットが改善していってるという話だと ● InnoDB Adaptive Flushing などの改善もありますけどね ● MySQL5.5あたりから強く意識するようになった ● それまでは、とにかくHDDが圧倒的に遅かったけど ● SSDの登場により、CPUとメモリがボトルネックになるケースを、強く意識し 始めた 強く意識したのは、 MySQL5.5 あたりから
  • 18. Copyright © GREE, Inc. All Rights Reserved. ● Fusion-IO 流行し始めたころ、調達できたのは ioDrive MLC 320GB ● 先ずは KVS に投入したり、 sharding が困難だったDBに投入したけど ● ほとんどのDBはHDDでも動くように sharding したり、アプリケーション 工夫したりしていたから、 320GB という容量は使いドコロが難しかった ● また、当時はHDDのサーバが大量にあったので、 ioDrive に依存した設 計にしてしまうと、今後どれだけリプレースすればいいの、という恐れもあっ た ● 他社のワークロードとGREEのワークロード違うから、他社の事例は参考 にしにくかった 先ずは ioDrive 導入した
  • 19. Copyright © GREE, Inc. All Rights Reserved. ● 当時、GREEで使ってたHDDのサーバと比較して、 ioDrive のサーバは コスト的に三倍くらいだったので、三倍以上の成果を挙げさせたいという前 提のもと ● 他のサーバの三倍以上のqueryを受けさせるために ● GREEのDBサーバに求められる要件を分析し、考えていった 三倍の仕事をさせるために
  • 20. Copyright © GREE, Inc. All Rights Reserved. そして ひらめいた
  • 21. Copyright © GREE, Inc. All Rights Reserved. ● GREEのアプリケーションサーバはコネクションプーリングをしておらず、リ クエストが来るごとにコネクションを張り、レスポンスを返すごとにコネクショ ン切っていて ● これは当時そこまで珍しくない実装だと思うけど ● 不幸なことに、共通系のDBなるものが存在して ● 特定のサービスでDBがささると、共通系のDBへのコネクションが溜まって いって、 too many connections が発生し ● 他のサービスが巻き込まれてしまうという負の連鎖 密結合ゆえの問題を軽減しよう
  • 22. Copyright © GREE, Inc. All Rights Reserved. (とてもざっくり)図にするとこう
  • 23. Copyright © GREE, Inc. All Rights Reserved. ● too many connections を避けるため、HDDのサーバをたくさん並べ て、たくさんの connection 受けられるようにするとか ● 重要なサービスと内製ゲームで、slaveのクラスタを分けるとかして ● 数の暴力で解決してたんだけど かつては富豪的に解決してた
  • 24. Copyright © GREE, Inc. All Rights Reserved. 例えば、次のように分けていた
  • 25. Copyright © GREE, Inc. All Rights Reserved. この状況を ioDriveの低latencyで なんとかする
  • 26. Copyright © GREE, Inc. All Rights Reserved. ● ioDrive や一般的な PCI-e SSD は、 latency が異常によい ● これは現代においても言える、オンプレミス環境のメリット ● ストレージというより、「ちょっと遅いメモリ」と考える ● ちょっと遅いメモリなので、 buffer pool のヒット率を少し下げても大丈夫 ● ピークタイムに、ユーザのデータの大半がヒットするなら、性能あまり変わらない ● buffer pool の割当を意図的に減らして、そのぶん max_connections を増やす。具体的にはHDDのサーバの三倍以上に上げる ● (高価だから)それほど多くないDRAM、 latency のすぐれた ioDrive と いう組み合わせで、HDDのサーバの三倍以上のqueryを受けさせて、 MySQLのCPU利用率引き上げる buffer pool のヒット率をうまく下げる
  • 27. Copyright © GREE, Inc. All Rights Reserved. ● slave は O_DIRECT 使えばメモリあけられるけど ● master は binlog が page cache に乗り続けてしまう ● そこで、 buffer pool の割当減らしてる master では、 cron で posix_fadvise(2) たたいて、古い binlog は page cache からちょっ とずつ落とすようにしてます。 ● (言語はなんでもいいんですけど) いまのところ ruby で IO#advise つ かって :dontneed 叩いてます。 ちょっと一工夫
  • 28. Copyright © GREE, Inc. All Rights Reserved. ● ioDriveのサーバ1台と、HDDのサーバ三台程度を等価交換できるように した ● どうしても I/O の性能が必要になった場合、 ioDrive のサーバを、大量 にある HDD のサーバ三台で置き換えることによって確保できるように ● むかしからあるHDDなサーバの在庫も活用できるように ● これで、 ioDrive のサーバの稼働台数を増やすことが可能になった ● ioDrive たくさん使うことによって、どんなふうに故障するのかがわかって きた ● ハードウェアは故障するまで使わないと、次のステージに踏み込めない HDDのサーバとの互換性
  • 29. Copyright © GREE, Inc. All Rights Reserved. よし、壊したから、 次のことを考えよう
  • 30. Copyright © GREE, Inc. All Rights Reserved. ● 時は流れ、NAND Flash の価格が下がり、大容量化が進んでいった ● 800GB以上のエンタープライズ仕様のSSDが普通に買えるようになった ● これは使いたい ● 当時、容量大きいSSD使ってる他社事例それほど多くは聞かなかったので、使ってやり たい ● いまは珍しく無いと思いますけど ● 他社が活用できてないものを活用することによって、サービスの競争力を向上させる ● かつて、masterはHDD、slaveは一台の物理サーバに複数mysqld起 動してSSDで集約するという他社事例あったけど、それだと運用の手間が 増えるし、 Monitoring が難しくなるなと思った NAND Flash の価格が下がってきた
  • 31. Copyright © GREE, Inc. All Rights Reserved. ● 高い random I/O 性能というのもあるけれど ● HDDと比べて消費電力が低く、熱にも強い ● 消費電力が少ないので、それだけ一つのラックにたくさんのサーバ積める ようになるし ● TurboBoost 使って clock あげて、CPUぶん回してやることもやりやすく なる ● かつてHDDのために使っていた電力を、より多くのCPUのために使う ● ラック単位で電力を考えたとき、ストレージよりもCPUに多くの電力を回す ようにする そもそも、NAND Flash は何がうれしいか
  • 32. Copyright © GREE, Inc. All Rights Reserved. ● GREEは力の限り sharding してしまっている ● SSDにリプレースしなくても動かせるDBが大量にある ● 100-200GB程度しかないDBでは、800GBのSSDは無用の長物ではな かろうか? だがしかし
  • 33. Copyright © GREE, Inc. All Rights Reserved. こんなことも あろうかと
  • 34. Copyright © GREE, Inc. All Rights Reserved. ずいぶん 前から
  • 35. Copyright © GREE, Inc. All Rights Reserved. 考えていたこと があった
  • 36. Copyright © GREE, Inc. All Rights Reserved. そうだ
  • 37. Copyright © GREE, Inc. All Rights Reserved. サービス無停止で master統合しよう
  • 38. Copyright © GREE, Inc. All Rights Reserved. ● DBが100-200GB程度しかないなら、統合して400GB以上にしてしまえ ばいい ● 具体的には次のように master切り替えの手法を踏まえて
  • 39. Copyright © GREE, Inc. All Rights Reserved. Master統合
  • 40. Copyright © GREE, Inc. All Rights Reserved. Master統合
  • 41. Copyright © GREE, Inc. All Rights Reserved. Master統合
  • 42. Copyright © GREE, Inc. All Rights Reserved. Master統合
  • 43. Copyright © GREE, Inc. All Rights Reserved. Master統合
  • 44. Copyright © GREE, Inc. All Rights Reserved. Master統合
  • 45. Copyright © GREE, Inc. All Rights Reserved. Master統合
  • 46. Copyright © GREE, Inc. All Rights Reserved. Master統合
  • 47. Copyright © GREE, Inc. All Rights Reserved. ● New Master -> New Slave 間で、全力で binary log が転送されて しまうケースがあった。ネットワークの帯域を圧迫するのがコワイ ● いろいろ改善策はあると思うけど ● slave_compressed_protocol がお手軽でいいかも ● いつもは有効にしたくないなら、 dump 流しこむときだけ有効にしても良 い ● 動的に変更できるので便利 mysqldump の結果を流しこむときに
  • 48. Copyright © GREE, Inc. All Rights Reserved. ● change master したあとに start slave すると、一気に binary log 転送され、一気に binary log を SQL_Thread が処理してしまうので ● ここで書いたスクリプト 使って、ちょっとずつ binary log 転送して、ちょっ とずつ binary log を適用させるように ● あと、 binary log は大き過ぎない方が良い感じ ● 弊社の場合は 200MB 程度にしてます ちょっとだけ工夫
  • 49. Copyright © GREE, Inc. All Rights Reserved. ● 次の課題が見えてきた これでいいかと思いきや
  • 50. Copyright © GREE, Inc. All Rights Reserved. 続きは 後編で
  • 51. Copyright © GREE, Inc. All Rights Reserved. つづく