1. はじめに pt-query-digest は、MySQL のスロー クエリを分析するためのツールです。SHOWPROCESSLIST または tcpdump によってキャプチャされた binlog、一般ログ、スローログ、または MySQL プロトコル データを分析できます。分析結果はファイルに出力できます。分析プロセスは、まずクエリステートメントの条件をパラメータ化し、次にパラメータ化されたクエリをグループ化してカウントし、各クエリの実行時間、回数、割合などを計算します。分析結果を使用して、問題を特定し、最適化することができます。 2. pt-query-digestをインストールする 1. ダウンロードページ: https://www.percona.com/doc/percona-toolkit/2.2/installation.html 2. Perlモジュール yum インストール -y perl-CPAN perl-Time-HiRes 3. インストール手順 方法1: rpmインストール /usr/local/src をコピーします percona.com/get/percona-toolkit.rpm を実行します。 yum インストール -y percona-toolkit.rpm ツールのインストールディレクトリは/usr/binです。 方法2: ソースコードのインストール /usr/local/src をコピーします percona.com/get/percona-toolkit.tar.gz を取得します。 tar zxf percona-toolkit.tar.gz cd percona-toolkit-2.2.19 perl Makefile.PL PREFIX=/usr/local/percona-toolkit 作成 && インストール ツールのインストールディレクトリは、/usr/local/percona-toolkit/binです。 4. 各ツールの使用方法の紹介(詳細:https://www.percona.com/doc/percona-toolkit/2.2/index.html) (1)スロークエリログの分析と統計 pt-クエリダイジェスト /usr/local/mysql/data/slow.log (2)サーバー概要 pt-要約 (3)サーバディスク監視 pt-ディスク統計 (4)MySQLサービスステータスサマリー pt-mysql-summary -- --user=root --password=root pt-query-digest の構文と重要なオプション
4. pt-query-digestの出力結果を分析する パートI: 全体的な統計結果 全体: クエリは全部でいくつありますか 時間範囲: クエリ実行の時間範囲 unique: ユニークなクエリの数、つまりクエリ条件をパラメータ化した後の異なるクエリの合計数 total: 合計 min: 最小 max: 最大 avg: 平均 95%: すべての値を小さいものから大きいものの順に並べると、一般的に 95% の数値が最も参考になります。 中央値:中央値、すべての値を小さいものから大きいものまで並べ、位置は中央です # ツールは、ユーザー時間、システム時間、物理メモリ使用量、仮想メモリ使用量のログ分析を実行します。# ユーザー時間 340 ミリ秒、システム時間 140 ミリ秒、rss 23.99M、vsz 203.11M # ツール実行時間# 現在の日付: 2016 年 11 月 25 日金曜日 02:37:18 # 分析ツールが稼働しているホスト名# ホスト名: localhost.localdomain # ファイル: slow.log # 全体: 合計 2、ユニーク 2、QPS 0.01、同時実行 0.01x ________________ # ログ記録の時間範囲 # 時間範囲: 2016-11-22 06:06:18 から 06:11:40 # 属性 合計 最小 最大 平均 95% 標準偏差 中央値 # =========== ======= ======= ======= ======= ======= ======= ======= ======= # ステートメント実行時間# 実行時間 3秒 640ミリ秒 2秒 1秒 2秒 999ミリ秒 1秒 # ロック時間 # ロック時間 1ms 0 1ms 723us 1ms 1ms 723us # クライアントに送信された行数 # 送信された行数 5 1 4 2.50 4 2.12 2.50 # SELECT文は行をスキャンします # 行を調べます 186.17k 0 186.17k 93.09k 186.17k 131.64k 93.09k # クエリ内の文字数# クエリサイズ 455 15 440 227.50 440 300.52 227.50 パート2: クエリグループ統計結果 ランク: すべてのステートメントのランキング。デフォルトではクエリ時間の降順でソートされ、--order-by で指定されます。 クエリID: ステートメントID (余分なスペースとテキスト文字を削除し、ハッシュ値を計算します) 応答: 合計応答時間 時間: この分析におけるこのクエリの合計時間の割合 呼び出し: 実行回数、つまりこの分析に含まれるこのタイプのクエリ文の数 R/Call: 実行あたりの平均応答時間 V/M: 応答時間の変動性と平均値の比 項目: クエリオブジェクト # プロフィール # 順位 クエリID 応答時間 通話数 R/通話 V/M 項目 # ==== ===================== ============= ====== ====== ====== ================== # 1 0xF9A57DD5A41825CA 2.0529 76.2% 1 2.0529 0.00 選択 # 2 0x4194D8F83F4F9365 0.6401 23.8% 1 0.6401 0.00 wx_member_baseを選択 パート3: 各クエリの詳細な統計 以下のクエリの詳細な統計結果から、実行回数、最大、最小、平均、95% などの各項目の統計が上部の表に一覧表示されます。 ID: クエリID番号。上図のクエリIDに対応します。 データベース: データベース名 ユーザー: 各ユーザーの実行回数 (パーセンテージ) Query_time distribution: クエリ時間の分布。長さは間隔の比率を反映します。この例では、1 秒から 10 秒の間のクエリの数は、10 秒を超えるクエリの 2 倍です。 テーブル: クエリに関係するテーブル 説明: SQL ステートメント # クエリ 1: 0 QPS、0x 同時実行、ID 0xF9A57DD5A41825CA、バイト 802 ______ # この項目は --limit に一致するためレポートに含まれます。 # スコア: V/M = 0.00 # 時間範囲: すべてのイベントは 2016-11-22 06:11:40 に発生しました # 属性 pct 合計 最小 最大 平均 95% 標準偏差 中央値 # ============ === ========= ======== ======== ======== ======= ======= ======= ======== # カウント 50 1 # 実行時間 76 2秒 2秒 2秒 2秒 2秒 0 2秒 # ロック時間 0 0 0 0 0 0 0 0 送信行数 20 1 1 1 1 1 0 1 # 行数を調べる 0 0 0 0 0 0 0 0 # クエリサイズ 3 15 15 15 15 15 0 15 # 弦: # データベーステスト # ホスト 192.168.8.1 # ユーザー mysql # クエリ時間の分布 # 1us # 10us # 100us # 1ミリ秒 # 10ミリ秒 # 100ミリ秒 # 1秒 ######################################################################### # 10秒以上 # EXPLAIN /*!50100 パーティション*/ スリープ(2)\Gを選択 5. 使用例 1. 遅いクエリファイルを直接分析します。 pt-query-digest slow.log > slow_report.log 2. 過去 12 時間のクエリを分析します。 pt-query-digest --since=12h slow.log > slow_report2.log 3. 指定された時間範囲内のクエリを分析します。 pt-query-digest slow.log --since '2017-01-07 09:30:00' --until '2017-01-07 10:00:00' >> slow_report3.log 4. 分析は、選択文を含む遅いクエリを参照します pt-query-digest --filter '$event->{fingerprint} =~ m/^select/i' slow.log> slow_report4.log 5. 特定のユーザーに対するクエリが遅い pt-query-digest --filter '($event->{user} || "") =~ m/^root/i' slow.log> slow_report5.log 6. 低速クエリはすべてフルテーブルスキャンまたはフル結合でクエリする pt-query-digest --filter '(($event->{Full_scan} || "") eq "yes") ||(($event->{Full_join} || "") eq "yes")' slow.log> slow_report6.log 7. クエリをquery_reviewテーブルに保存する pt-query-digest --user=root –password=abc123 --review h=localhost,D=test,t=query_review --create-review-table slow.log 8. クエリをquery_historyテーブルに保存する pt-query-digest --user=root –password=abc123 --review h=localhost,D=test,t=query_history --create-review-table slow.log_0001 pt-query-digest --user=root –password=abc123 --review h=localhost,D=test,t=query_history --create-review-table slow.log_0002 9. tcpdumpを使用してmysqlのTCPプロトコルデータをキャプチャし、分析する tcpdump -s 65535 -x -nn -q -tttt -i 任意 -c 1000 ポート 3306 > mysql.tcp.txt pt-query-digest --type tcpdump mysql.tcp.txt> slow_report9.log 10. バイナリログを分析する mysqlbinlog mysql-bin.000093 > mysql-bin000093.sql pt-クエリダイジェスト --type=binlog mysql-bin000093.sql > slow_report10.log 11. 一般的なログを分析する pt-query-digest --type=genlog localhost.log > slow_report11.log 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM をご愛顧いただき、ありがとうございます。 以下もご興味があるかもしれません:
|
>>: 要素 el-button ボタンコンポーネントの使用の詳細な説明
問題の説明最近、ホストから次のカーネル情報が報告されました。 7月8日 10:47:42 cztes...
失敗の原因今日、カルーセルを書いていたときに、overflow;hidden; が失敗する可能性があ...
SPA を構築する場合、多くの場合、特定のルートを保護する必要があります。たとえば、認証されたユーザ...
CSS を使用するだけで、コーナーカット + ボーダー + 投影 + コンテンツの背景色のグラデーシ...
マイグレーションアドバンテージ:小型、高速、総所有コストが低い、オープンソース。複数のオペレーティン...
MySQL と接続関連のタイムアウト序文:今日、同僚から、データ量が多いときに MySQL データベ...
目次mysql フィルター レプリケーションメインデータベースに実装ライブラリから実装いくつかの質問...
nginx バージョン 1.11.3次の構成を使用すると、検証は無効になり、クロスドメインの問題が依...
この記事の例では、Vueの具体的なコードを共有し、zipファイルをダウンロードして参考にしています。...
序文この実験では、デバッグ用に2つの仮想マシン(CentOs6とRed Hat 6)を準備します。 ...
導入私はしばらくの間、postgresql データベースを使用していました。クラウドに移行した後、自...
目次1. 複雑なページデータ領域をコンポーネントにカプセル化する2. 大きな画像の使用を避ける3. ...
1. インストール1. MySQLをダウンロードするダウンロードアドレス: リンクアドレスブラウザで...
ページ内の a タグをクリックした後、ページ内の対応する場所にジャンプするようにします。方法は非常に...
計算されたプロパティ場合によっては、テンプレートにロジックを詰め込みすぎると、テンプレートが重くなり...