Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
道具を磨くことのススメ 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 + rea...
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 |+--------------------+----------+| s...
mysql> SHOW PROFILE SOURCE;+--------------------+----------+-----------------------+---------------+-------------+| Status...
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 -...
8. Facebook, onlineschema 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• アウトプットを是非
最後に
サイバーエージェント一緒に働いてくれる人   募集中
ご清聴ありがとうございました
道具を磨くことのススメ
道具を磨くことのススメ
道具を磨くことのススメ
道具を磨くことのススメ
Upcoming SlideShare
Loading in …5
×

道具を磨くことのススメ

4,769 views

Published on

#mysqlcasual 3のLT資料

------

The materials of #mysqlcasual 3

  • Be the first to comment

道具を磨くことのススメ

  1. 1. 道具を磨くことのススメ 2012/04/19 #mysqlcasual 3 @masudaK
  2. 2. 自己紹介• @masudaK• 緑の会社でOperation Engineer• 大規模大好き• ニーハイ好き• 詳しくは #増田チャラい
  3. 3. では、本題
  4. 4. 道具に惑わされては いけない
  5. 5. 本質掴む
  6. 6. そのとおりでござる
  7. 7. 駄菓子菓子!!
  8. 8. よくある光景
  9. 9. Q) その設定搭載メモリ超えてない?
  10. 10. A) バッファに載ったら終わります (キリッ
  11. 11. Q) バッファどれくらい使われてる?
  12. 12. A) 分かりません (キリッ
  13. 13. Q) n時n分からn分まで走る クエリ分析しといてー
  14. 14. A) えっ(カジュアル風に
  15. 15. 事前にある便利なもの使おうず(カジュアルに)
  16. 16. ミス減らそうず(カジュアルに)
  17. 17. 今から可能な限り ご紹介(カジュアルに)
  18. 18. 設定編
  19. 19. 1. mymemcheck
  20. 20. • 最大使用メモリ見積もりを ご提出• http://dsas.blog.klab.org/ archives/50860867.html
  21. 21. 知ってる人ー ノ
  22. 22. • こんな感じ(詳しくはウェブ(ry• process heap =• innodb_buffer_pool + key_buffer +• max_connections * (sort_buffer + read_buffer + read_rnd_buffer) + max_connections * stack_size
  23. 23. 2Gマシンで大量設定してみた
  24. 24. 2G > 7.940 [G] ... LIMIT OVER!!
  25. 25. 2. MySQLTuner
  26. 26. • https://github.com/ rackerhacker/MySQLTuner- perl• Performance Metricsっていう のがある
  27. 27. 知ってる人ー ノ
  28. 28. • こんなこと教えてくれる•     query_cache_size (>= 8M)•     thread_cache_size (start at 4)•     innodb_buffer_pool_size (>= 807M)• とかとか
  29. 29. 眺めて解析編
  30. 30. • EXPLAIN• EXPLAIN• ADD INDEX• FORCE INDEX• クエリ改善ご提案• 基本中の基本
  31. 31. 3. tcpdumpからのー
  32. 32. 4. pt-query-digest
  33. 33. @mikedaさんが紹介してくれるはず
  34. 34. 5. PROFILING
  35. 35. • SET PROFILE• その実行スレッドにのみ有効• どこに時間かかってるかとか• パッと見で分かりづらい時便利
  36. 36. 知ってる人ー ノ
  37. 37. mysql> SET profiling=1;mysql> 適当なクエリ発行
  38. 38. 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 |
  39. 39. 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
  40. 40. 6. MySlowTranCapture
  41. 41. • 単発クエリは早いのに、トランザク ションだと遅いものとか検知してくれ る• https://github.com/yoshinorim/ MySlowTranCapture
  42. 42. 知ってる人ー ノ
  43. 43. 松信本購入するしかない。
  44. 44. 楽したい編
  45. 45. 7. TPC-C
  46. 46. 知ってる人ー ノ
  47. 47. カジュアル怖い
  48. 48. • データ作るのめんどい• tpcc_load localhost tpcc1000 root "" 100• ./tpcc_start -h localhost -d tpcc1000 -u root -w 10 - c 2 -r 10 -l 30• Sの人向け。hはもっとハード。
  49. 49. 8. Facebook, onlineschema change tool
  50. 50. 知ってる人ー ノ
  51. 51. • http://www.facebook.com/notes/mysql-at- facebook/online-schema-change-for-mysql/ 430801045932• 誰かプロダクトで(ry
  52. 52. 情報収集編
  53. 53. 9. MySQL Performance Blogを愛読
  54. 54. 愛読してる人ー ノ
  55. 55. シュワルツの笑顔 やばい
  56. 56. 10. Baron Schwartz 傾倒してみる
  57. 57. 11. カンファレンス 資料を漁る
  58. 58. 胸熱
  59. 59. まだまだ色々
  60. 60. 終わりに• 道具が全てではない• けど、問題解決の糸口として• プロダクトで使えるものは(ry• アウトプットを是非
  61. 61. 最後に
  62. 62. サイバーエージェント一緒に働いてくれる人 募集中
  63. 63. ご清聴ありがとうございました

×