SlideShare una empresa de Scribd logo
1 de 67
道具を磨くことのススメ
 2012/04/19 #mysqlcasual 3
        @masudaK
自己紹介
• @masudaK
• 緑の会社でOperation Engineer
• 大規模大好き
• ニーハイ好き
• 詳しくは #増田チャラい
では、本題
道具に惑わされては
  いけない
本質掴む
そのとおりでござる
駄菓子菓子!!
よくある光景
Q) その設定
搭載メモリ超えてない?
A) バッファに
載ったら終わります
   (キリッ
Q) バッファ
どれくらい使われてる?
A) 分かりません
   (キリッ
Q) n時n分からn分まで走る
 クエリ分析しといてー
A) えっ(カジュアル風に
事前にある
便利なもの使おうず
(カジュアルに)
ミス減らそうず
(カジュアルに)
今から可能な限り
  ご紹介
(カジュアルに)
設定編
1. mymemcheck
•   最大使用メモリ見積もりを
    ご提出

•   http://dsas.blog.klab.org/
    archives/50860867.html
知ってる人ー ノ
• こんな感じ(詳しくはウェブ(ry
• process heap =
• innodb_buffer_pool + key_buffer +
• max_connections * (sort_buffer +
  read_buffer + read_rnd_buffer) +
  max_connections * stack_size
2Gマシンで大量設定してみた
2G > 7.940 [G] ... LIMIT OVER!!
2. MySQLTuner
•   https://github.com/
    rackerhacker/MySQLTuner-
    perl

• Performance Metricsっていう
    のがある
知ってる人ー ノ
• こんなこと教えてくれる
•     query_cache_size (>= 8M)
•     thread_cache_size (start at 4)
•     innodb_buffer_pool_size (>= 807M)
• とかとか
眺めて解析編
• EXPLAIN
• EXPLAIN
• ADD INDEX
• FORCE INDEX
• クエリ改善ご提案
• 基本中の基本
3. tcpdumpからのー
4. pt-query-digest
@mikedaさんが
紹介してくれるはず
5. PROFILING
• SET PROFILE
• その実行スレッドにのみ有効
• どこに時間かかってるかとか
• パッと見で分かりづらい時便利
知ってる人ー ノ
mysql> SET profiling=1;

mysql> 適当なクエリ発行
mysql> SHOW PROFILE;
+--------------------+----------+
| Status             | Duration |
+--------------------+----------+
| starting               | 0.000087 |
| Opening tables     | 0.000063 |
| System lock         | 0.000009 |
| init                  | 0.000009 |
| optimizing         | 0.000004 |
| statistics            | 0.000009 |
| preparing           | 0.000010 |
| executing           | 0.002878 |
| Sending data       | 0.000292 |
| end                 | 0.000010 |
| query end           | 0.000003 |
| closing tables     | 0.000002 |
| removing tmp table | 0.000008 |
| closing tables     | 0.000003 |
| freeing items       | 0.003564 |
| logging slow query | 0.000009 |
| cleaning up         | 0.000003 |
mysql> SHOW PROFILE SOURCE;
+--------------------+----------+-----------------------+---------------+-------------+
| Status             | Duration | Source_function       | Source_file   | Source_line |
+--------------------+----------+-----------------------+---------------+-------------+
| starting           | 0.000087 | NULL                  | NULL          |        NULL |
| Opening tables     | 0.000063 | open_tables           | sql_base.cc   |        4837 |
| System lock        | 0.000009 | mysql_lock_tables     | lock.cc       |         299 |
| init               | 0.000009 | mysql_select          | sql_select.cc |        2554 |
| optimizing         | 0.000004 | optimize              | sql_select.cc |         863 |
| statistics         | 0.000009 | optimize              | sql_select.cc |        1054 |
| preparing          | 0.000010 | optimize              | sql_select.cc |        1076 |
| executing          | 0.002878 | exec                  | sql_select.cc |        1823 |
| Sending data       | 0.000292 | exec                  | sql_select.cc |        2365 |
| end                | 0.000010 | mysql_select          | sql_select.cc |        2590 |

Statusを格納してる箇所の行数まで出してくれる
ここまで必要なクエリはほとんどないと思(ry
6. MySlowTranCapture
• 単発クエリは早いのに、トランザク
  ションだと遅いものとか検知してくれ
  る


• https://github.com/yoshinorim/
  MySlowTranCapture
知ってる人ー ノ
松信本購入するしかない。
楽したい編
7. TPC-C
知ってる人ー ノ
カジュアル怖い
• データ作るのめんどい
• tpcc_load localhost tpcc1000 root "" 100
• ./tpcc_start -h localhost -d tpcc1000 -u root -w 10 -
  c 2 -r 10 -l 30

• Sの人向け。hはもっとハード。
8. Facebook, online
schema change tool
知ってる人ー ノ
• http://www.facebook.com/notes/mysql-at-
  facebook/online-schema-change-for-mysql/
  430801045932

• 誰かプロダクトで(ry
情報収集編
9. MySQL Performance
     Blogを愛読
愛読してる人ー ノ
シュワルツの笑顔
  やばい
10. Baron Schwartz
  傾倒してみる
11. カンファレンス
  資料を漁る
胸熱
まだまだ色々
終わりに

• 道具が全てではない
• けど、問題解決の糸口として
• プロダクトで使えるものは(ry
• アウトプットを是非
最後に
サイバーエージェント
一緒に働いてくれる人
   募集中
ご清聴
ありがとうございました

Más contenido relacionado

La actualidad más candente

ぐだぐだInnoDB
ぐだぐだInnoDBぐだぐだInnoDB
ぐだぐだInnoDByoku0825
 
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べMasahiro Nagano
 
Osc2015北海道 札幌my sql勉強会_波多野_r3
Osc2015北海道 札幌my sql勉強会_波多野_r3Osc2015北海道 札幌my sql勉強会_波多野_r3
Osc2015北海道 札幌my sql勉強会_波多野_r3Nobuhiro Hatano
 
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技yoku0825
 
MySQLチューニング
MySQLチューニングMySQLチューニング
MySQLチューニングyoku0825
 
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413博文 斉藤
 
Zabbixでvmc statsの情報など監視
Zabbixでvmc statsの情報など監視Zabbixでvmc statsの情報など監視
Zabbixでvmc statsの情報など監視Shota Onishi
 
MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形yoku0825
 
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろうMySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろうyoku0825
 
Index shotgun on mysql5.6
Index shotgun on mysql5.6Index shotgun on mysql5.6
Index shotgun on mysql5.6yoku0825
 
MySQL clients
MySQL clientsMySQL clients
MySQL clientsyoku0825
 

La actualidad más candente (11)

ぐだぐだInnoDB
ぐだぐだInnoDBぐだぐだInnoDB
ぐだぐだInnoDB
 
blogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べblogサービスの全文検索の話 - #groonga を囲む夕べ
blogサービスの全文検索の話 - #groonga を囲む夕べ
 
Osc2015北海道 札幌my sql勉強会_波多野_r3
Osc2015北海道 札幌my sql勉強会_波多野_r3Osc2015北海道 札幌my sql勉強会_波多野_r3
Osc2015北海道 札幌my sql勉強会_波多野_r3
 
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
サーバーが完膚なきまでに死んでもMySQLのデータを失わないための表技
 
MySQLチューニング
MySQLチューニングMySQLチューニング
MySQLチューニング
 
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413
 
Zabbixでvmc statsの情報など監視
Zabbixでvmc statsの情報など監視Zabbixでvmc statsの情報など監視
Zabbixでvmc statsの情報など監視
 
MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形MySQL 5.7が魅せる新しい運用の形
MySQL 5.7が魅せる新しい運用の形
 
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろうMySQL 5.7の次のMySQL 8.0はどんなものになるだろう
MySQL 5.7の次のMySQL 8.0はどんなものになるだろう
 
Index shotgun on mysql5.6
Index shotgun on mysql5.6Index shotgun on mysql5.6
Index shotgun on mysql5.6
 
MySQL clients
MySQL clientsMySQL clients
MySQL clients
 

Similar a 道具を磨くことのススメ

Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニングKensuke Nagae
 
Oracle In-database-archiving ~Oracleでの論理削除~
Oracle In-database-archiving ~Oracleでの論理削除~Oracle In-database-archiving ~Oracleでの論理削除~
Oracle In-database-archiving ~Oracleでの論理削除~Daiki Mogmet Ito
 
使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!IIJ
 
20160929 inno db_fts_jp
20160929 inno db_fts_jp20160929 inno db_fts_jp
20160929 inno db_fts_jpyoyamasaki
 
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1Hideki Saito
 
今から備えるMySQL最新バージョン5.7
今から備えるMySQL最新バージョン5.7今から備えるMySQL最新バージョン5.7
今から備えるMySQL最新バージョン5.7yoku0825
 
MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)yoyamasaki
 
MySQL勉強会 インデックス編.2013 08-02
MySQL勉強会 インデックス編.2013 08-02MySQL勉強会 インデックス編.2013 08-02
MySQL勉強会 インデックス編.2013 08-02CROOZ, inc.
 
Q4 Mでメッセージキュー
Q4 MでメッセージキューQ4 Mでメッセージキュー
Q4 Mでメッセージキューngi group.
 
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたことMITSUNARI Shigeo
 
SugarCRM meets Azure
SugarCRM meets AzureSugarCRM meets Azure
SugarCRM meets AzureToshiya TSURU
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことyoku0825
 
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなしMasahiro NAKAYAMA
 
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~オラクルエンジニア通信
 
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)Insight Technology, Inc.
 
Impala 2.0 Update 日本語版 #impalajp
Impala 2.0 Update 日本語版 #impalajpImpala 2.0 Update 日本語版 #impalajp
Impala 2.0 Update 日本語版 #impalajpCloudera Japan
 
Deep Dive into Modules
Deep Dive into ModulesDeep Dive into Modules
Deep Dive into ModulesHideki Saito
 
5 古雷my sql源碼與資料庫規範
5 古雷my sql源碼與資料庫規範5 古雷my sql源碼與資料庫規範
5 古雷my sql源碼與資料庫規範Ivan Tu
 
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫Insight Technology, Inc.
 
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 152016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15歩 柴田
 

Similar a 道具を磨くことのススメ (20)

Maatkit で MySQL チューニング
Maatkit で MySQL チューニングMaatkit で MySQL チューニング
Maatkit で MySQL チューニング
 
Oracle In-database-archiving ~Oracleでの論理削除~
Oracle In-database-archiving ~Oracleでの論理削除~Oracle In-database-archiving ~Oracleでの論理削除~
Oracle In-database-archiving ~Oracleでの論理削除~
 
使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!使ってみた!ioMemoryで実現する噂のAtomic write!
使ってみた!ioMemoryで実現する噂のAtomic write!
 
20160929 inno db_fts_jp
20160929 inno db_fts_jp20160929 inno db_fts_jp
20160929 inno db_fts_jp
 
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
沖縄オープンラボラトリ OpenStackハンズオンセミナー午後1
 
今から備えるMySQL最新バージョン5.7
今から備えるMySQL最新バージョン5.7今から備えるMySQL最新バージョン5.7
今から備えるMySQL最新バージョン5.7
 
MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)MySQL 5.7 InnoDB 日本語全文検索(その2)
MySQL 5.7 InnoDB 日本語全文検索(その2)
 
MySQL勉強会 インデックス編.2013 08-02
MySQL勉強会 インデックス編.2013 08-02MySQL勉強会 インデックス編.2013 08-02
MySQL勉強会 インデックス編.2013 08-02
 
Q4 Mでメッセージキュー
Q4 MでメッセージキューQ4 Mでメッセージキュー
Q4 Mでメッセージキュー
 
高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと高速な暗号実装のためにしてきたこと
高速な暗号実装のためにしてきたこと
 
SugarCRM meets Azure
SugarCRM meets AzureSugarCRM meets Azure
SugarCRM meets Azure
 
MySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいことMySQL 5.7にやられないためにおぼえておいてほしいこと
MySQL 5.7にやられないためにおぼえておいてほしいこと
 
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし20140828 #ssmjp 社内チューニンガソンで優勝したはなし
20140828 #ssmjp 社内チューニンガソンで優勝したはなし
 
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
MySQL Technology Cafe #12 MDS HA検証 ~パラメータからパフォーマンスまで~
 
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
[INSIGHT OUT 2011] A24 sql server wait events(mario broodbakker)
 
Impala 2.0 Update 日本語版 #impalajp
Impala 2.0 Update 日本語版 #impalajpImpala 2.0 Update 日本語版 #impalajp
Impala 2.0 Update 日本語版 #impalajp
 
Deep Dive into Modules
Deep Dive into ModulesDeep Dive into Modules
Deep Dive into Modules
 
5 古雷my sql源碼與資料庫規範
5 古雷my sql源碼與資料庫規範5 古雷my sql源碼與資料庫規範
5 古雷my sql源碼與資料庫規範
 
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
20160929_InnoDBの全文検索を使ってみた by 株式会社インサイトテクノロジー 中村範夫
 
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 152016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
2016/12/15 SQLチューニングと対戦格闘ゲームの類似性について語る。 JPOUG Advent Calendar 2016 Day 15
 

Más de Kenichi Masuda

20110528 qpstudy "Do not have a fear of oversea's ML"
20110528 qpstudy "Do not have a fear of oversea's ML"20110528 qpstudy "Do not have a fear of oversea's ML"
20110528 qpstudy "Do not have a fear of oversea's ML"Kenichi Masuda
 
2011-04-09 #qpstudy ケーブルのお話
2011-04-09 #qpstudy ケーブルのお話2011-04-09 #qpstudy ケーブルのお話
2011-04-09 #qpstudy ケーブルのお話Kenichi Masuda
 

Más de Kenichi Masuda (6)

破壊
破壊破壊
破壊
 
20110806 LT資料
20110806 LT資料20110806 LT資料
20110806 LT資料
 
20110528 qpstudy "Do not have a fear of oversea's ML"
20110528 qpstudy "Do not have a fear of oversea's ML"20110528 qpstudy "Do not have a fear of oversea's ML"
20110528 qpstudy "Do not have a fear of oversea's ML"
 
2011-04-09 #qpstudy ケーブルのお話
2011-04-09 #qpstudy ケーブルのお話2011-04-09 #qpstudy ケーブルのお話
2011-04-09 #qpstudy ケーブルのお話
 
20110302 Mongo Tokyo
20110302 Mongo Tokyo20110302 Mongo Tokyo
20110302 Mongo Tokyo
 
20110301 Mongo Tokyo
20110301 Mongo Tokyo20110301 Mongo Tokyo
20110301 Mongo Tokyo
 

道具を磨くことのススメ

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n