紹介 of Anemometer

174
-1

Published on

2016/01/22 MySQL Casual Talks vol.9

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
174
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

紹介 of Anemometer

  1. 1. 紹介 of Anemometer 最近仕事してますん 2016/01/22 yoku0825 MySQL Casual Talks vol.9
  2. 2. 宣伝 1/33
  3. 3. MySQL Cluster Casual Talks #3 2/33
  4. 4. やりたい 3/33
  5. 5. NDBCLUSTER だといい加減マ ンネリなので 4/33
  6. 6. M ySQL の C luster くださいって⾔っ たら 出てきそうな製品 C asual T alks 5/33
  7. 7. 通称 MCCT 6/33
  8. 8. 商⽤クラスターの スピーカーが⾒付 かったら本腰⼊れ る 7/33
  9. 9. 前回 vol.8 8/33
  10. 10. ⼩規模サイトの DB運⽤ スレーブ2台以上禁⽌ 9/33
  11. 11. 俺が⼩規模 MySQL だ︕︕︕ 10/33
  12. 12. スレーブ1台の MySQL を100台 管理する技術 11/33
  13. 13. とか吹っ掛けようと 思ったんですがスラ イド間に合いません でした̲| ̄|○ 12/33
  14. 14. 本編の前に⼤ 事なお知らせ があります 13/33
  15. 15.   14/33
  16. 16. default_password_lifetime= 0 MySQL Bugs: #77277: default̲password̲lifetime should be set 0 as implicit default value ドキュメント- An update on default̲password̲lifetime | MySQL Server Blog - 「もっとユーザーを驚かせない⽅法でsecure by defaultな 状態に移⾏できるようにしたい」 MySQL Bugs: #79939: default̲password̲lifetime > 0 should print warning at startup - MySQL Bugs: #79959: SYS should have a view of user accounts expiring - 15/33
  17. 17. default_password_lifetime= 0 ⼩さなバグレポがイケてないデフォルト値を変えた。 “affects me”してくださった⽅ありがとうございます。 そしてありがとう @morgo と @Rkajiyama︖ 16/33
  18. 18. さあ、次は︖ MySQL Bugs: #76553: Sushi-Beer issue of MySQL with utf8mb4 MySQL Bugs: #79977: utf8mb4̲unicode̲520̲ci donʼt make sense for Japanese FTS What would you like to see in MySQL 5.8? | Master MySQL 17/33
  19. 19. \こんにちは/ yoku0825@とある企業のDBA オラクれない- ポスグれない- マイエスキューエる- 家に帰ると 妻の夫- せがれの⽗- ムスメの⽗- Twitter: @yoku0825 Blog: ⽇々の覚書 MyNA ML: ⽇本MySQLユーザ会 18/33
  20. 20. 紹介 of Anemometer 19/33
  21. 21. Anemometer スローログ pt-query-digestの可視化ツール pt-query-digestの結果をMySQLに⼊れる機能(--history, --review)をそのまま使ってる 実のところ、そのテーブルの中⾝をグラフィカルにしてくれ るツール box/Anemometer: Box SQL Slow Query Monitor 20/33
  22. 22. Anemometer 21/33
  23. 23. Anemometer pt-query-digestがTime rangeとしてクエリーをまとめてし まう問題 # Query 14: 0.00 QPS, 0.00x concurrency, ID 0xAF17C328E1020443 at byte 10391443 # This item is included in the report because it matches --outliers. # Scores: V/M = 13.70 # Time range: 2015-11-02 10:55:08 to 2015-12-18 15:20:14 # Attribute pct total min max avg 95% stddev median # ============ === ======= ======= ======= ======= ======= ======= ======= # Count 0 13 # Exec time 0 163s 2s 51s 13s 29s 13s 9s # Lock time 0 5ms 271us 445us 354us 424us 65us 301us # Rows sent 9 544.87k 3.91k 104.73k 41.91k 97.04k 33.62k 46.68k # Rows examine 0 12.00M 238.87k 3.04M 945.00k 1.46M 808.81k 725.01k # Query size 0 24.29k 1.87k 1.87k 1.87k 1.86k 0.00 1.86k 22/33
  24. 24. Anemometer テーブル上UNIQUE KEY (hostname_max, checksum, ts_min, ts_max)で、Anemometerはts_minでプロットするため、そ のクエリーがts_minに集中したことになってしまう。 mysql> SELECT * FROM global_query_review_history LIMIT 1G *************************** 1. row *************************** hostname_max: xxx db_max: xxx checksum: 1233945238822708500 sample: xxx ts_min: 2015-09-14 11:32:12 ts_max: 2015-10-28 15:51:01 ts_cnt: 31 Query_time_sum: 651.778 Query_time_min: 2.07993 Query_time_max: 197.678 23/33
  25. 25. Anemometer ts_minに集中しちゃう ⽇次でpt-query-digestを回している程度だと、⽇単位までしか 分解できない 24/33
  26. 26. anemo eater スローログをスプリットしてpt-query-digestを呼びまくる 1分ぶんずつpt-query-digestに⾷わせれば、ts_minと ts_maxの差は最⼤でも1分 - AnemometerをDockerコンテナーとして起動する- 既存のAnemometerがあれば単にスローログを分割して ⾷わせるpt-query-digestのラッパーとして呼べる - 25/33
  27. 27. anemo eater 1分単位でプロットできる 26/33
  28. 28. anemo eater ⾯倒なことはしたくない Anemometerの存在とその弱点は知ってた(Dockerイメ ージは作ったけど弱点にぶちあたって放置) - カジュアルにMySQLスローログ可視化with Fluentd +Elasticsearch+Kibana - kikumotoのメモ帳 - MySQL Casual Talks vol 6.でNata2について発表してき た - Studio3104::BLOG.new - 俺にクンフーが⾜りなかった 27/33
  29. 29. anemo eater リアルタイムでなくてもいい スロークエリーのリアルタイム通知は別の⽅法でしてる- グラフで⾒られれば数分前の情報であっても全然構わな い - リアルタイムを捨てて 保存期間を考えない スローログが残っている限りの情報を、最初から、最 後まで⾒られる - ⾒るかどうかもわからないグラフのために常時リソース を割かなくていい ⾒たく / ⾒せたく なったら起動、⾒終わったら停⽌ - 28/33
  30. 30. anemo eater $ git clone https://github.com/yoku0825/anemoeater $ cd anemoeater $ ./anemoeater slow_log_file Docker container starts with 172.17.0.43. URL will be http://xxxx:32780/anemometer 29/33
  31. 31. anemo eater pt-query-digestslowlog mysqld httpdphp browser Docker container apache 30/33
  32. 32. anemo eater parallel 並列で分割したスローログに対してpt-query-digestを実⾏ cell 指定した単位にクエリーを丸めてpt-query-digestを実⾏(単 位は分) since YYYYMMDDHHNNの10桁でpt-query-digestに渡すスローロ グの開始時刻を指定 until YYYYMMDDHHNNの10桁でpt-query-digestに渡すスローロ グの終了時刻を指定 31/33
  33. 33. anemo eater report n回pt-query-digestを呼ぶたびに画⾯出⼒ no-docker スクリプトの中でdocker runを実⾏しない。 local yoku0825/anemoeaterをpullせずにDockerfileを使ってロー カルでdocker buildを実⾏する user, host, socket, port, password --no-dockerの時だけ接続先MySQLの情報を指定する 32/33
  34. 34. Questions and/or Suggestions? 33/33
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×