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クラスターを構築する方法
目次双方向バインディングの原理ngモデルレンダリングカスタム双方向バインディングプロパティコンポーネ...
目次概要1. メニューとルーティング処理2. メニューとルートリスト3. ログインプロセスの処理概要...
目次Redux Toolkitが解決する問題何が含まれていますか? Redux Toolkit AP...
1. まず、自分のdockerhubアカウントを登録します。登録アドレス: https://hub....
<br />出典: http://www.a-xuan.cn/?p=197 先ほどFac...
HTML を使用して動的な Web クロックを作成します。コードは次のとおりです。 <!DOC...
明確な意味: distinctive は、一意のレコードの数を照会するために使用されます。つまり、d...
すべてのアニメーションの基本原理は、対応する画像を短時間で次々に表示し、視覚的に動いているように見せ...
序文CSS を使用して点線を生成するのは、フロントエンド開発者にとっては簡単です。一般的に、これを実...
序文基本的に、職場のプログラマーは、count(*)、count(1)、または count(prim...
目次概要1. コンポジションAPI 1. ref と reactive の違いは何ですか? 2. 周...
目次charとvarcharの違いcharとvarcharの違い上記は、MySQL における cha...
準備するこの記事の環境情報: ソフトウェアバージョンセントOSセントOS7.4マイグレーション8.0...
私はしばらく MGR と連絡を取り合ってきました。MySQL 8.0.23 の登場により、MySQL...
データ ボリューム コンテナーは、データ ボリュームをマウントするために特別に使用されるコンテナーで...