ほとんどの MySQL パフォーマンス指標は、次の 2 つの方法で取得できます:
mysqladmin extend-status コマンドを使用して取得された MySQL パフォーマンス インジケーターは、デフォルトで累積値になります。 現在のステータスを把握したい場合は、差を計算する必要があります; パラメーター --relative(-r) を追加すると、各インジケーターの違いを確認でき、パラメーター --sleep( -i) 更新する頻度を指定します。
実行中のMySQLサーバーのさまざまなステータス値、累積値を一覧表示できます。
Mysqladmin 拡張ステータス コマンドと show global status は、多くのインジケーター項目を取得します。実際のアプリケーションでは、次のパフォーマンス指標に注目してください:
tps: 1 秒あたりのトランザクション数、1 秒あたりのトランザクション数;
qps: 1 秒あたりのクエリ数 1 秒あたりのクエリ数;
tps/qps を計算するには通常 2 つの方法があります:
方法 1: com_commit と com_rollback に基づいて tps を計算し、質問に基づいて qps を計算します。
TPS = Com_commit/s Com_rollback/s
###で、###Com_commit /s= mysqladmin extend-status --relative --sleep=1|grep -w Com_commit
Com_rollback/s = mysqladmin extend-status --relative --sleep=1|grep -w Com_rollback
QPS は、MySQL サーバーによって 1 秒あたりに実行されるクエリの合計量を指します。これは、1 秒あたりの質問 (顧客クエリの数) ステータス値の変化によっておおよそ表されるため、次のようになります。
QPS = mysqladmin extend-status --relative --sleep=1|grep -w 質問
また、次のような上記の方法に従って、1 秒あたりの mysql の選択、挿入、更新、削除などの数を取得することもできます。
Com_select/s = mysqladmin 拡張ステータス --relative --sleep=1|grep -w Com_selectCom_select/s: 1 秒あたりの select ステートメントの平均実行数
Com_insert/s: 1 秒あたりの挿入ステートメントの平均実行数
Com_update/s: 1 秒あたりの更新ステートメントの平均実行数
Com_delete/s: 1 秒あたりの削除ステートメントの平均実行数
方法 2: com_%、qps に基づいて tps を計算します
tps= Com_insert/s Com_update/s Com_delete/s
qps=Com_select/s Com_insert/s Com_update/s Com_delete/s
2. スレッドのステータス
3. 交通状況
)
4. Innodb ファイルの読み取りおよび書き込み時間innodb_data_fsyncs: innodb によって実行される 1 秒あたりの fsync() オペレーションの平均数
5. innodb 読み取りおよび書き込みボリューム
innodb_data_read: innodb によって読み取られる 1 秒あたりの平均データ量 (KB
)innodb_data_write: innodb によって 1 秒あたりに書き込まれるデータの平均量 (KB
)innodb_buffer_pool_reads: 1 秒あたりに物理ディスクから読み取られた平均ページ数
innodb_buffer_pool_read_requests: 1 秒あたりの innodb バッファー プールからの平均読み取り数 (論理読み取りリクエストの数)
innodb_buffer_pool_write_requests: 1 秒あたりの innodb バッファー プールへの平均書き込み数
innodb_buffer_pool_pages_dirty: innodb キャッシュ プール内の 1 秒あたりのダーティ ページの平均数
innodb_buffer_pool_pages_flushed: innodb キャッシュ プール内の 1 秒あたりのページ更新リクエストの平均数
Innodb バッファ プールの読み取りヒット率
innodb_buffer_read_hit_ratio = ( 1 - Innodb_buffer_pool_reads/Innodb_buffer_pool_read_requests) * 100
Innodbバッファプールの使用率
Innodb_buffer_usage = ( 1 - Innodb_buffer_pool_pages_free / Innodb_buffer_pool_pages_total) * 100
innodb_os_log_fsyncs: 1 秒あたりのログ ファイルへの fsync() 書き込みの平均数
innodb_os_log_writing: 1 秒あたりにログ ファイルに書き込まれる平均バイト数
innodb_log_writes: ログ ファイルへの 1 秒あたりの物理書き込みの平均数
innodb_log_write_requests: 1 秒あたりのログ書き込みリクエストの平均数
innodb_rows_deleted: 1 秒あたりに innodb テーブルから削除される平均行数
innodb_rows_inserted: 1 秒あたりに innodb テーブルから挿入される平均行数
innodb_rows_read: 1 秒あたりに innodb テーブルから読み取られる平均行数
innodb_rows_updated: 1 秒あたりに innodb テーブルから更新される平均行数
innodb_row_lock_waits: 行がロックを待機する必要がある回数
innodb_row_lock_time: 行ロックに費やされた合計時間 (ミリ秒単位)
innodb_row_lock_time_avg: 平均行ロック時間 (ミリ秒単位)Key_write_requests: バッファ プールからの 1 秒あたりの MyISAM 書き込みの平均数
key_reads: MyISAM が 1 秒あたりにハードディスクから読み取る平均回数
key_writes: MyISAM が 1 秒あたりにハードディスクから書き込む平均回数
Key_usage_ratio =Key_blocks_used/(Key_blocks_used Key_blocks_unused)*100
MyISAM 1 秒あたりの平均キー バッファ読み取りヒット率
Key_read_hit_ratio=(1-Key_reads/Key_read_requests)*100
MyISAM 1 秒あたりの平均キー バッファ書き込みヒット率
Key_write_hit_ratio =(1-Key_writes/Key_write_requests)*100
Created_tmp_tables: サーバーがステートメントを実行するときに自動的に作成されるメモリ内の一時テーブルの数
Created_tmp_disk_tables/Created_tmp_tables の比率は 10% を超えてはなりません。Created_tmp_tables の値が比較的大きい場合は、ソート文が多すぎるか、接続文が十分に最適化されていない可能性があります。
12.その他slow_queries: 実行時間がlong_query_time秒を超えたクエリの数 (重要)
sort_rows: ソートされた行の数
open_files: 開いているファイルの数
open_tables: 現在開いているテーブルの数
select_scan: 最初のテーブルの完全スキャンの結合数
さらに、mysqladmin 拡張ステータスやグローバル ステータスを介して直接取得できないパフォーマンス指標がいくつかありますが、それらは非常に重要です。
Percona は、応答時間をカウントするための tcprstat ツールを提供します。この機能はデフォルトでオフになっています。この機能は、パラメータ query_response_time_stats=1 を設定することでオンにできます。
応答時間を確認するには 2 つの方法があります:
(1) コマンド SHOW QUERY_RESPONSE_TIME;
を使用して応答時間の統計を表示します。(2) INFORMATION_SCHEMA の QUERY_RESPONSE_TIME テーブルを確認します。
http://www.orczhou.com/index.php/2011/09/ thanks-percona-response-time-distribution/comment-page-1/(参考記事)
スレーブ ノードで show smile status\G コマンドを実行できます。Seconds_Behind_Master 項目の値は、スレーブの現在の遅延 (秒単位) です。
以上がMySQLの性能指標と計算方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。