ライブ運用サーバーでMySQLを診断およびプロファイルする最良の方法は何ですか?
-
03-07-2019 - |
質問
実稼働サーバーでMySQLを診断およびプロファイルするために推奨するツール/方法は何ですか?
システムを拡張する別の方法をテストし、読み取り/書き込みタイミング、メモリ、CPU負荷、ディスクアクセスなどへの影響を確認し、ボトルネックを見つけることが私の目標です。
解決
まず、たとえば次のような何らかの監視を設定する必要があります。
- MySQL Enterprise Monitor
- MONyog
- Cacti (無料)
- Munin (無料)
- MySQLアクティビティレポート(無料)
その他の役立つツール: mytop innotop mtop maatkit
さらに、スロークエリのロギングを有効にする必要がありますmy.cnf。
パラメータの調整/変更を開始する前に、何らかの種類を作成する必要があります テスト計画を作成し、変更前と変更後の結果を比較して、変更を確認します 理にかなっている。
他のヒント
これは私がかなり取り組んできたものです。
-
MonYog -MySQL監視サービス。これは本番環境で使用します。無料ではありませんが、アラートや履歴データなど、多くの機能があります。
-
MySQL Enterprise Monitor -MySQL Enterpriseで使用可能(つまり、 、安くない)
-
Roll Your Own!
独自のロールについて:
RRDツール(一般的なMRTGで使用される)を使用する、本当にクールな監視アプリケーションを実際に開発しました。 )およびMySQL統計の組み合わせ、およびiostatなどのシステム統計。これは優れた演習であるだけでなく、1つのインターフェイスから必要なものを正確に監視するための柔軟性を提供してくれました。
簡単な説明独自の統計情報を作成するためのいくつかのアプローチ。
MonYogも使用しているにもかかわらず、独自にローリングする大きな動機の1つは、ディスク統計を追跡することでした。ディスクI / Oは大きなボトルネックになる可能性があり、標準のMySQLモニタリングシステムにはI / Oモニタリングがありません。 iostat を使用します。これは systat パッケージ。
MySQL統計のグラフをディスクI / O統計の横に表示するインターフェースがあり、MySQLの負荷がディスクI / Oにどのように影響するかを全体的に把握できます。
これまでは、実稼働アプリケーションが動けなくなった理由がまったくわかりませんでした。ディスクI / Oが大きな問題であり、複雑なクエリを実行しているときにMySQLがディスク上に多くの一時テーブルを作成していることがわかりました。クエリを最適化し、ディスクのパフォーマンスを劇的に向上させることができました。
リストにも追加:RHQ 4(オープンソース)- http://rhq-project.org/
http://tinyurl.com/vote-gifに投票リストに追加:
- Maatkit
- mysql用のdbForge studio
- ジェットプロファイラー