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クラスターを構築する方法
1. 仮想マシンにLinuxシステムをインストールし、仮想マシンを起動し、rootとパスワードを入力...
目次1. グローバルレベル2. データベースレベル3. 表面レベル4. 列レベルの権限5. サブルー...
PS: 最近、nginx を詳細に紹介している <<High-Performance ...
CSS でテキストを中央揃えにするプロパティは非常に簡単に実現できます。text-align:cen...
コードをコピーコードは次のとおりです。 <HTML> <ヘッド> <T...
目次概要CommonJS 仕様Node の CommonJS 仕様の実装モジュールのエクスポートとイ...
目次1. はじめに2. 行き詰まった問題の分析3. 解決策(理論) 4. ソリューション(コード) ...
目次トピック分析する基本的な解決策基本的な再帰再帰最適化要約するトピック私たちが答えなければならない...
この記事では、マウス フリップナビゲーションの制作についてまだ疑問を持っている友人の役に立つことを期...
NodeJS は次のファイルをコピーします:通常、小さなファイルのコピー操作では、ストリーム パイプ...
1. Zabbixバックアップ [root@iZ2zeapnvuohe8p14289u6Z /]# ...
1. mycatとはエンタープライズアプリケーション開発のための完全にオープンソースの大規模データベ...
一般的に、データ テーブル内の列を ID 列として設定すると、ID 列の表示値を手動で ID 列に挿...
目次背景1) yumのkeepchche機能を有効にする: 方法1 2) yum-utils ソフト...
1. 開発環境 vue+vant 2. コンピュータシステム Windows 10 Profess...