ホームページ  >  記事  >  システムチュートリアル  >  MySQLの性能指標と計算方法を詳しく解説

MySQLの性能指標と計算方法を詳しく解説

王林
王林転載
2024-03-10 21:07:46366ブラウズ

ほとんどの MySQL パフォーマンス指標は、次の 2 つの方法で取得できます:

MySQLの性能指標と計算方法を詳しく解説

mysqladmin

mysqladmin extend-status コマンドを使用して取得された MySQL パフォーマンス インジケーターは、デフォルトで累積値になります。 現在のステータスを把握したい場合は、差を計算する必要があります; パラメーター --relative(-r) を追加すると、各インジケーターの違いを確認でき、パラメーター --sleep( -i) 更新する頻度を指定します。

MySQLの性能指標と計算方法を詳しく解説

MySQLの性能指標と計算方法を詳しく解説

グローバル ステータスの表示

実行中のMySQLサーバーのさまざまなステータス値、累積値を一覧表示できます。

MySQLの性能指標と計算方法を詳しく解説

Mysqladmin 拡張ステータス コマンドと show global status は、多くのインジケーター項目を取得します。実際のアプリケーションでは、次のパフォーマンス指標に注目してください:

1.tps/qps

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_select

Com_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. スレッドのステータス
threads_running: 現在アクティブなスレッドの数
threads_connected: 現在接続されているスレッドの数

3. 交通状況
Bytes_received/s: 1 秒あたりにすべてのクライアントから受信した平均バイト数 (単位 KB)
Bytes_sent/s: 1 秒あたりにすべてのクライアントに送信された平均バイト数 (単位 KB

)

4. Innodb ファイルの読み取りおよび書き込み時間
innodb_data_reads: innodb が 1 秒あたりにファイルから読み取る平均回数
innodb_data_writes: innodb がファイルから 1 秒あたりに書き込む平均回数

innodb_data_fsyncs: innodb によって実行される 1 秒あたりの fsync() オペレーションの平均数

5. innodb 読み取りおよび書き込みボリューム

innodb_data_read: innodb によって読み取られる 1 秒あたりの平均データ量 (KB

)

innodb_data_write: innodb によって 1 秒あたりに書き込まれるデータの平均量 (KB

)
6. innodb バッファプールのステータス

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

7. innodb ログ

innodb_os_log_fsyncs: 1 秒あたりのログ ファイルへの fsync() 書き込みの平均数

innodb_os_log_writing: 1 秒あたりにログ ファイルに書き込まれる平均バイト数

innodb_log_writes: ログ ファイルへの 1 秒あたりの物理書き込みの平均数

innodb_log_write_requests: 1 秒あたりのログ書き込みリクエストの平均数

8. innodb 行

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: 平均行ロック時間 (ミリ秒単位)

9. MyISAM の読み取りおよび書き込み時間 key_read_requests: 1 秒あたりのバッファ プールからの MyISAM 読み取りの平均数

Key_write_requests: バッファ プールからの 1 秒あたりの MyISAM 書き込みの平均数

key_reads: MyISAM が 1 秒あたりにハードディスクから読み取る平均回数

key_writes: MyISAM が 1 秒あたりにハードディスクから書き込む平均回数

10. MyISAM バッファ プール 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

11. 一時テーブル Created_tmp_disk_tables: サーバーがステートメントを実行するときにハード ディスク上に自動的に作成される一時テーブルの数

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 拡張ステータスやグローバル ステータスを介して直接取得できないパフォーマンス指標がいくつかありますが、それらは非常に重要です。

13. 応答時間: 応答時間

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/(参考記事)

14. スレーブ遅延: スタンバイ データベース遅延

スレーブ ノードで show smile status\G コマンドを実行できます。Seconds_Behind_Master 項目の値は、スレーブの現在の遅延 (秒単位) です。

MySQLの性能指標と計算方法を詳しく解説

以上がMySQLの性能指標と計算方法を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlinuxprobe.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。