序文 ストレス テスト中に、リソース使用のボトルネックによって発生する最も直接的なパフォーマンスの問題が、ビジネス トランザクションの応答時間が長すぎることや、TPS が徐々に低下することなどである場合。問題箇所の分析では、通常、TOP や nmon を使用して CPU やメモリの使用状況を確認するなど、サーバーのリソース使用率を監視することが最優先事項であり、その後、ネットワーク IO やディスク IO の問題などの IO の問題をトラブルシューティングします。 ディスク IO の問題の場合、一般的な問題は、SQL 構文の問題、MYSQL パラメータ構成の問題、または IOPS スループット レートの問題につながるサーバー自体のハードウェア ボトルネックです。 この記事では主にMySQLサーバIO 100%の分析と最適化計画を紹介します。詳しい紹介を見てみましょう。 【質問】 書き込みが主となるMySQL 5.6.21データベースインスタンスがあり、IO %utilは100%に近い。 高い書き込みIOPS 【分析プロセス】 1. iotopツールを使用すると、現在のIO消費量が最も高いmysqlスレッドを確認できます。 2. スレッド 49342 のスタックを確認すると、ファイル 9 に対応する REDO ログが更新されていることがわかります。 3. ファイル番号9はREDOログの最初のファイルに対応します。 MySQL プロセスが REDO ログ ファイルを頻繁に更新するのはなぜでしょうか? REDO ログ フラッシュ戦略と組み合わせて分析する必要があります。鍵となるのは innodb_flush_log_at_trx_commit パラメータです。 デフォルト値は 1 で、これが最も安全です。ただし、書き込み負荷が高い場合はパフォーマンスに重大な影響を与える可能性があります。トランザクションがコミットされるたびに、MySQL はログ バッファー内のデータをログ ファイルに書き込み、ディスクにフラッシュします。 このクラスターの書き込みシナリオを考慮すると、書き込みのほとんどは小さなトランザクションであり、各トランザクションのコミットによってディスク フラッシュがトリガーされます。このシナリオでは、innodb_log_buffer_size と innodb_log_file_size を増やすことによる最適化の効果は明らかではありません。 【最適化計画】 1. アプリケーション レベルでは、書き込み負荷が大きいシステムの場合、単一の挿入ステートメントを小さなバッチの挿入ステートメントに最適化できます。これにより、トランザクションのコミット数と REDO ログのフラッシュ数が減り、理論的にはパフォーマンスが向上します。 2. MySQL レベルでは、ログ タイプのシステムの場合、ダウンタイム時に少量のデータ損失が許容される場合は、innodb_flush_log_at_trx_commit パラメータを 2 に調整できます。 2 に設定すると、トランザクションがコミットされたときに書き込み操作のみが実行され、システム ページ キャッシュのみが書き込まれることが保証されます。したがって、インスタンスがクラッシュしてもトランザクションは失われませんが、システムがクラッシュするとトランザクションが失われる可能性があります。 このサーバーでのテストでは、パラメータを 2 に調整すると、IO 要求が 200M/S から 10M/S 程度に低下し、圧力が 10 倍以上軽減されます。 3. システムレベルでは、よりパフォーマンスの高いディスクに交換する 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 以下もご興味があるかもしれません:
|
<<: Vue はタブ ラベルを実装します (ラベルが自動スクロールを超える)
>>: docker で Apollo をデプロイする詳細なチュートリアル
DCL (データ制御言語): データベースのアクセス権とセキュリティ レベルを定義し、ユーザーを作成...
方法1: SET PASSWORDコマンドを使用する mysql> username@loca...
概要今日は主に、MySQL データベースから binlog ログを正しく削除する方法を紹介します。ロ...
テーブル作成コマンドには以下が必要です。 テーブルの名前フィールド名各フィールドを定義します(タイ...
IPSec の概要IPSec (インターネット プロトコル セキュリティ): ネットワーク層と適用さ...
この CSS リセットは、Eric Meyers の CSS リセットに基づいて変更されており、特に...
画像をプルする docker プル mysql完成した画像を見る Docker イメージイメージを介...
このセクションから、http モジュールの実装原理について説明します。http モジュールで非常に重...
目次トピックmysqlの追加、削除、変更、クエリを入力しますMySQL トランザクション処理私は M...
目次splice() メソッドjoin() メソッド逆() メソッドevery() メソッド削減()...
インストール プロセスは、コンパイル手順を除いて、基本的にソース バージョンと同じです。この記事では...
目次序文フロントエンドモジュール開発の価値厄介な名前の競合面倒なファイル依存関係モジュール化の利点C...
sftp は、安全なファイル転送プロトコルである Secure File Transfer Prot...
目次01 MySQLルーターの紹介MySQL Router とは何ですか? 02 MySQLルータの...
目次序文解決ツールの紹介仕組み使用制限使用上の注意使用例いくつかのパラメータの説明出力例Tencen...