1. 一般的なMySQLの設定以下のすべての構成パラメータは、32G のメモリを搭載したサーバーに基づいています。 1. 独立した表領域を開く
2. MySQL サービスで許可される同時セッション数の上限は、デフォルトでは 151 です。「接続数が多すぎます」というエラー メッセージが頻繁に表示される場合は、この値を増やす必要があります。
3. オペレーティングシステムがリスニングキューに保持できる接続数
4. 各クライアント接続に許容されるエラーの最大数。この数を超えると、MYSQL サーバーが再起動されるか、flush hosts コマンドによってこのホストの関連情報がクリアされるまで、MYSQL サーバーはこのホストの接続要求を禁止します。
5. すべてのスレッドによって開かれたテーブルの数
6. 各接続で送信される最大データ サイズは 1G で、1024 の倍数である必要があります。通常は、最大の BLOB の値に設定されます。
7. リクエストの最大接続時間
8. ソートバッファはORDER BYおよびGROUP BYキューによるソートを処理するために使用されます。
9. インデックスなしのテーブル全体のスキャンの最小バッファサイズ
10. クエリバッファサイズ
11. 1回のクエリで使用できるバッファサイズを指定します。デフォルトは1Mです。
12. デフォルトのトランザクション分離レベルを設定する
13. スレッドが使用するヒープ サイズ。この値は、ストアド プロシージャの再帰深度と、メモリ内で処理できる SQL ステートメントの複雑さを制限します。このメモリ量は、接続ごとに予約されます。
14. バイナリログを有効にする
15. バイナリログ形式: 行ベース
16. InnoDB は、インデックスと生データを格納するためにバッファ プールを使用します。この変数は、サーバーの物理メモリ サイズの 80% に設定できます。
17. IO操作を同期するために使用されるIOスレッドの数
18. Innodb コア内で許可されるスレッド数の推奨設定は、CPU の数とディスクの数の 2 倍です。
19. ログデータをバッファリングするために使用されるバッファのサイズ
20. ロググループ内の各ログファイルのサイズ
21. ロググループ内のファイル総数
22. SQL文がロールバックされる前にInnoDBトランザクションがInnoDB行ロックを待機する時間
23. 遅いクエリレコードのしきい値期間はデフォルトで10秒です
24. インデックスを使用しないクエリを記録する
my.cnf の例: [mysqld] データディレクトリ=/var/lib/mysql ソケット=/var/lib/mysql/mysql.sock シンボリックリンク=0 innodb_file_per_table = 1 innodb_buffer_pool_size = 6442450944 #メモリが不足している場合はエラーが報告されます innodb_file_io_threads = 4 innodb_thread_concurrency = 16 innodb_log_buffer_size = 16M innodb_log_file_size = 512M innodb_log_files_in_group = 3 innodb_lock_wait_timeout = 120 log_bin = /var/lib/mysql/mariadb-bin binlog_format = 行 遅いクエリログ 長いクエリ時間 = 2 インデックスを使用しないログクエリ transaction_isolation = 繰り返し読み取り クエリキャッシュサイズ = 128M クエリキャッシュ制限 = 4M 最大接続数 = 8000 バックログ = 300 最大接続エラー数 = 1000 オープンファイル制限 = 10240 最大許容パケット = 32M 待機タイムアウト = 10 ソートバッファサイズ = 16M 結合バッファサイズ = 16M スレッドスタック = 512K 2. MySQLパフォーマンスストレステスト一般的なテストツール:
mysqlslap ツールの紹介 mysqlslap は mariadb パッケージから提供されます。テスト中、デフォルトで mysqlslap スキーマが生成され、テスト テーブル t1 が生成され、テスト データがクエリされて挿入され、mysqlslap ライブラリが自動的に生成されます。すでに存在する場合は、まず削除されます。 --only-print を使用して実際のテスト プロセスを印刷すると、テスト全体が完了した後、データベースにトレースが残されません。 一般的なオプション:
テスト例: 1) シングルスレッドテスト [root@centos7 ~]# mysqlslap -a -uroot -p パスワードを入力してください: ベンチマーク すべてのクエリを実行するのにかかった平均秒数: 0.004 秒 すべてのクエリを実行するのに要する最小秒数: 0.004 秒 すべてのクエリを実行する最大秒数: 0.004 秒 クエリを実行しているクライアントの数: 1 クライアントあたりの平均クエリ数: 0 2) マルチスレッドテストでは、同時接続をシミュレートするために –concurrency を使用します。 [root@centos7 ~]# mysqlslap -uroot -p -a -c 500 パスワードを入力してください: ベンチマーク すべてのクエリを実行するのにかかった平均秒数: 3.384 秒 すべてのクエリを実行するための最小秒数: 3.384 秒 すべてのクエリを実行する最大秒数: 3.384 秒 クエリを実行しているクライアントの数: 500 クライアントあたりの平均クエリ数: 0 3) 異なるストレージエンジンのパフォーマンスを同時にテストして比較する [root@centos7 ~]# mysqlslap -uroot -p -a --concurrency=500 --number-of-queries 1000 --iterations=5 --engine=myisam,innodb --debug-info パスワードを入力してください: ベンチマーク エンジンmyisamのために実行 すべてのクエリを実行するのにかかった平均秒数: 0.192 秒 すべてのクエリを実行するのに要する最小秒数: 0.187 秒 すべてのクエリを実行する最大秒数: 0.202 秒 クエリを実行しているクライアントの数: 500 クライアントあたりの平均クエリ数: 2 ベンチマーク エンジン innodb の実行 すべてのクエリを実行するのにかかった平均秒数: 0.355 秒 すべてのクエリを実行するための最小秒数: 0.350 秒 すべてのクエリを実行する最大秒数: 0.364 秒 クエリを実行しているクライアントの数: 500 クライアントあたりの平均クエリ数: 2 ユーザー時間 0.33、システム時間 0.58 最大常駐セットサイズ 22892、積分常駐セットサイズ 0 非物理ページフォールト 46012、物理ページフォールト 0、スワップ 0 ブロック入力 0 出力 0、メッセージ入力 0 出力 0、シグナル 0 自発的なコンテキストスイッチ 31896、非自発的なコンテキストスイッチ 0 4) 同時クエリ数500と1000、合計クエリ数5000でテストを実行する [root@centos7 ~]# mysqlslap -uroot -p -a --concurrency=500,1000 --クエリ数 5000 --debug-info パスワードを入力してください: ベンチマーク すべてのクエリを実行するのにかかった平均秒数: 3.378 秒 すべてのクエリを実行するための最小秒数: 3.378 秒 すべてのクエリを実行する最大秒数: 3.378 秒 クエリを実行しているクライアントの数: 500 顧客あたりの平均クエリ数: 10 ベンチマーク すべてのクエリを実行するのにかかった平均秒数: 3.101 秒 すべてのクエリを実行するための最小秒数: 3.101 秒 すべてのクエリを実行する最大秒数: 3.101 秒 クエリを実行しているクライアントの数: 1000 クライアントあたりの平均クエリ数: 5 ユーザー時間 0.84、システム時間 0.64 最大常駐セットサイズ 83068、積分常駐セットサイズ 0 非物理ページフォールト 139977、物理ページフォールト 0、スワップ 0 ブロック入力 0 出力 0、メッセージ入力 0 出力 0、シグナル 0 自発的なコンテキストスイッチ 31524、非自発的なコンテキストスイッチ 3 5) 反復テスト [root@centos7 ~]# mysqlslap -uroot -p -a --concurrency=500 --number-of-queries 5000 --iterations=5 --debug-info パスワードを入力してください: ベンチマーク すべてのクエリを実行するのにかかった平均秒数: 3.307 秒 すべてのクエリを実行するのに要する最小秒数: 3.184 秒 すべてのクエリを実行する最大秒数: 3.421 秒 クエリを実行しているクライアントの数: 500 顧客あたりの平均クエリ数: 10 ユーザー時間 2.18、システム時間 1.58 最大常駐セットサイズ 74872、積分常駐セットサイズ 0 非物理ページフォールト 327732、物理ページフォールト 0、スワップ 0 ブロック入力 0 出力 0、メッセージ入力 0 出力 0、シグナル 0 自発的なコンテキストスイッチ 73904、非自発的なコンテキストスイッチ 3 上記は、MySQL シリーズ 15: 一般的な MySQL 構成とパフォーマンス ストレス テストの詳細な内容です。一般的な MySQL 構成とパフォーマンス ストレス テストの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: htmlハイパーリンクaのクリックイベントの後、hrefで指定されたアドレスにジャンプします。
>>: Dockerを使用してRedisクラスターを構築する方法
序文ES6 で初めて導入された「構造化代入構文」を使用すると、配列やオブジェクトの値を異なる変数に挿...
共通点: DIV タグと SPAN タグは、コンテンツ全体を非表示にしたり、コンテンツ全体を移動した...
序文皆さんご存知のとおり、MySQL の運用・保守において、更新/削除条件が誤っているためにデータが...
クラシックな色の組み合わせの中でも、黒、白、グレーの時代を超えた魅力を否定できる人はおそらくいないで...
1. スクロールスナップはフロントエンド開発者にとって必須のスキルですCSS スクロール スナップは...
目次MySQL 5.6以前MySQL 5.6以降要約する知らせMySQL 5.6以前更新手順元のテー...
データのバックアップと復元パート3の詳細は次のとおりです基本的な概念:バックアップ、現在のデータまた...
MySQL ストアド プロシージャ、カーソル、トランザクションの例の詳細な説明以下は私が作成した M...
iframe の src を 'about:blank' に設定した後、"...
目次イベントループブラウザ環境イベントループノード環境イベントループ6つのステージ(1)setTim...
Dockerコンテナのマウントディレクトリ情報のみを表示する docker 検査 --format ...
1. docker imagesを使用して、このマシン上のすべてのイメージファイルを表示します。 2...
reactプロジェクトで非常に一般的なシナリオ: const [watchValue、setWatc...
layui テーブルには複数行のデータがあります。外部入力コンテンツを通じて、指定された行を見つけ...
実際の業務では、JavaScript の正規表現が依然として頻繁に使用されます。したがって、この部分...