ホームページ >データベース >mysql チュートリアル >[MySQL データベース] 第 2 章の解釈: MySQL ベンチマーク テスト

[MySQL データベース] 第 2 章の解釈: MySQL ベンチマーク テスト

php是最好的语言
php是最好的语言オリジナル
2018-08-07 11:50:421412ブラウズ

前書き:

ベンチマーク: 基本的なスキルは、システム設計のストレス テストであり、特定のワークロードの下でシステムに何が起こるかを知るための唯一の便利で効果的な方法です。さまざまな圧力の下でシステムの動作を観察できます。システムの容量を評価したり、重要な変更が何であるかを理解したり、システムがさまざまなデータをどのように処理するかを観察したりすることで、システムの実際の負荷 (マスター システムの動作) の外でテストするための仮想シナリオを作成できます

本文:

冒頭でも述べたように、ベンチマークテストは非常に重要です。実行できること: 一般: ハードウェアのテスト、ハードウェアの推定、システムの検証、圧力の測定、構成の調整

1. システムに基づいて仮定を検証し、その仮定が実際の状況と一致しているかどうかを確認します。解決すべきシステムの異常な動作。 3. システムの現在の動作をテストし、履歴結果を使用して予測不可能な問題を分析および診断します。 4. 負荷が増加したときにシステムが遭遇する可能性のあるスケーラビリティのボトルネックを特定します。 5.将来のビジネスの成長、ハードウェア、ネットワーク容量、関連リソースの計画 6. さまざまな環境に適応するアプリケーションの能力をテストします。 7. さまざまなハードウェア、ソフトウェア、およびオペレーティング システムの構成をテストして、機器が正しく構成されているかどうかを確認します。データベース その機能は、現在の構成 (ハードウェア構成、OS、データベース設定などを含む) でのデータベースのパフォーマンスを分析し、MySQL のパフォーマンスのしきい値を見つけ、実際のシステム要件に従って構成を調整することです。 [出典]

実際のプレッシャーとは異なります: 実際は複雑で変化しやすい; ベンチマーク テストは、できるだけ迅速に実行する必要があり、シンプルかつ直接的で、結果を比較しやすく、低コストで実装が簡単です

2.2 戦略

システム全体を対象としています: 統合されたフルスタック

MySQL を単独でテストする: 単一コンポーネント

推奨される全体的なテスト: 正しい設定

1. ユーザーは全体的なパフォーマンスに重点を置く 2. MySQL が常にボトルネックであるとは限りません。アプリケーションの本質 パフォーマンス

推奨される個別のテスト: データが必要です

1. さまざまなスキーマまたはクエリのパフォーマンスを比較する必要があります。 2. 特定の問題についてテストする必要があります。 3. 長期にわたる短期間の急速なサイクルを回避します。 2.2.1 指標

目標: 一連の問題に絞り込み、特定の問題を詳細に分析します

スループット:

単位時間あたりのトランザクション数、TPC-C、マルチユーザー対話型アプリケーション、1 秒あたりのトランザクション数、 1 分あたりのトランザクション数

応答時間または遅延

テスト タスクに必要な全体時間、平均応答時間、最小応答時間、最大応答時間、およびパーセンテージをグラフを使用します

同時実行性:

パフォーマンスをテストします異なる同時実行下でのアプリケーションの動作、同時に動作するスレッドと接続の数に注意してください。

Web サーバーの同時実行数。 = データベース、セッション ストレージ メカニズムのデータ処理能力のみ。Web の同時実行時間をテストするには、システムのリソースを 2 倍にするか、システムのスループットを 2 倍にします。システム ビジネスのプレッシャーは変化する可能性があります。スケーラビリティを測定する必要があります。 ; この指標は容量仕様に役立ちます: アプリケーションのボトルネックを発見するための情報を提供します

要件を設計およびテストするときは、一部の指標のみに焦点を当てて他の指標を無視することを避けてください

2.3 方法

。実際のアプリケーションの状況にできるだけ近づける必要があります:

完全なセットを使用する、データ分散特性、実際の分散パラメータ、複数のユーザーがいるかどうか、ユーザーの動作を一致させる、複数のタイプ、エラー ログを確認する、システムのウォームアップ: どのようにするか再起動後、通常のパフォーマンス能力に達し、それが一定期間続くまでに時間がかかりますか

2.3.1 設計、仕様

質問し、目標を明確にします

標準ベンチマーク テスト:

適切なソリューション TPC-H OLTP

専用テスト:

本番データセットの複雑で反復的で復元が容易なスナップショット

計画:

パラメーター、文書化された結果、詳細なテスト記録 2.3.2 時間

ベンチマーク テストは 実行する必要があります十分な時間です。時間が確認できない場合は、システムが安定していることが確認されるまで観察を続けてください。

システムが安定しているように見えるまでの時間は少なくとも次のとおりです。システムがウォームアップするまでの時間2.3 .3 システムのパフォーマンスとステータスを取得します

テスト対象のシステムに関する可能な限り多くの情報を収集します

ディレクトリを作成し、テストのラウンドごとに個別のサブディレクトリを作成し、結果、構成ファイル、テストインジケーター、スクリプト、およびその他の関連指示が含まれます 記録する必要があるのはデータです:

システムステータス、パフォーマンスインジケーター: CPU 使用率、ディスク I/O、ネットワークトラフィック統計、SHOWGLOBAL STATUS カウンター

適切な間隔、記録開始時間、使用率タイムスタンプを収集するだけです

2.3.4 正確な結果を取得します

次の質問に答えてください:

正しいベンチマークを選択しましたか?質問に対してデータは収集されましたか?ウォームアップ時間は十分ですか?

間違ったテスト標準が使用されていますか: IO 集中型のリファレンスでは、CPU 集中型のテスト標準を使用してパフォーマンスを評価していますか?

テスト結果は再現可能ですか?再テストする前に、システムのステータスが一貫していることを確認します。症状に応じたテスト

影響要因: 外部圧力、パフォーマンス分析、監視システム、詳細なログ、定期的な操作

注:

プロセスで必要なリソースはテスト専用です。テスト パラメータの変更を最小限に抑え、反復を通じてベンチマーク テストのパラメータを徐々に変更します。プロセス内の異常な状態を注意深く調査し、その理由を見つけます

2.3.5 テスト分析結果を実行します

自動化: 人的エラーを削減します。 Makefile ファイル、スクリプト

テスト結果 現在のニーズを満たすには、単純に数ラウンドのテストを実行して結果を確認し、結果が大きく変化する場合は、さらに数回または長時間実行してください。 結果:

分析、数値を知識に変える、最終的な目標は、設計中の質問に答えることです

意味のある結果を抽象化する方法は、データの収集方法、データを分析するためのスクリプトの作成方法、人的エラー、作業負荷、再現性、および文書化の削減方法によって決まります

2.3.6 絵を描く 重要性

百聞は一見に如かず 本来、赤ちゃんが地図を描きたいと思った知識点がいくつかあったのですが、絵がありませんでした

本の中にこんな一文がありました。共有しましょう: SHOW FULL PROCESSLIST SHOW PROCESSLIST は何を示していますか? SUPER 権限がある場合は、mysqladmin processlist ステートメントを使用して、すべてのスレッドを表示することもできます。 FULL キーワードを使用しない場合、各スレッドの最初の 100 文字のみが表示されます。 [出典]

2.4 ベンチマーク テスト ツール

統合テスト ツール: アプリケーション全体

1. ab Apache HTTP は、1 秒あたりに処理できるリクエストの最大数です [参考] [2]

2. http_load: ab は、入力ファイルを通じて複数の URL をテストするために設計されており、より柔軟です。時間比率に応じてテストするようにカスタマイズすることもできます。 [参考]

3. JMeter、他のアプリケーションをロードしてパフォーマンスをテストできるプログラム これは良いと思います。単一コンポーネント: MySQL のテスト、MySQL に基づくシステム パフォーマンス。mysqlslap: mysql5.1 以降、サーバーの負荷をシミュレートし、タイミング情報を出力し、同時接続数を指定します。 SQL ステートメント、それ以外の場合は select ステートメントが自動的に生成されます [参考]

2. MySQL Benchmark Suite (sql-bench): 付属、5.7 から削除、さまざまなデータベース サーバーでの

比較テスト用のベンチマーク テスト スイート、単一スレッドシリアル実行、クエリ実行速度の測定

事前定義されたテストが多数含まれており、使いやすく、さまざまなエンジンまたは構成のパフォーマンステストを簡単に比較でき、CPU 負荷が高く、どのタイプの操作がより速く実行されたかが結果で表示されます。短所: テスト データ セットが小さいため、指定されたデータを使用できず、Perl BDB サポートが必要です。 [参考]

3. Super Smack: MySQL、PostgreSQL が提供されます。

マルチユーザー

アクセスをシミュレートし、テストデータをデータベースにロードし、ランダムデータでテストテーブルを埋めることができる強力なツール [参考]

4. データベーステストスイート: 一部の業界標準テストに類似したツールセット、

無料TPC-C OLTP テスト ツール

5. sysbench:

マルチスレッド システム ストレス テスト、データベース サーバーのパフォーマンスに影響を与える要因に基づいてシステムのパフォーマンスを評価する、オールラウンド テスト ツール をサポートします。 MySQL、オペレーティング システム、ハードウェアのハードウェア テスト [参考] [2]

MySQL の BENCHMARK() 関数: 特定の操作の実行速度をテストします。パラメーターには、実行回数または式 (任意のスカラー式) を指定できます。 )

2.5 の場合

ここで n の単語を省略します

2.6 概要 ついにお待ちしています ~ 音楽が始まります 少なくとも sysbench、oltp の使用方法 (さまざまなシステム パフォーマンスの比較)、および fileio テストに精通していることをお勧めします。 ; ベンチマーク テストを頻繁に実行し、いくつかの原則を策定し、適切なテスト ツールを選択し、スクリプト ライブラリを構築し、情報分析結果を収集し、描画ツールに習熟する必要があります

上司はそう言っています。次の記事は何ですか?

関連記事:

[MySQL データベース] 第 1 章の解釈: MySQL のアーキテクチャと歴史

【MySQLデータベース】第3章の解釈: サーバーパフォーマンス分析(パート2)

以上が[MySQL データベース] 第 2 章の解釈: MySQL ベンチマーク テストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。