すべてのプロダクト
Search
ドキュメントセンター

ApsaraDB RDS:インスタンスパラメーターの最適化

最終更新日:Aug 27, 2024

ApsaraDB RDSコンソールで、ApsaraDB RDS for MySQLインスタンスのパラメーター値を変更できます。 キーパラメーターの不適切な値は、RDSインスタンスのパフォーマンスに影響を与えたり、アプリケーションでエラーを引き起こす可能性があります。 このトピックでは、主要なパラメーターの最適化の提案を示します。

説明

デフォルトのパラメーター値は、ApsaraDB RDSコンソールで表示できます。

back_log

  • サポートされているMySQLバージョン: 8.0、5.7、5.6、5.5。

  • パラメーターの変更後にインスタンスを再起動するかどうか: はい。

  • 機能: プライマリMySQLスレッドは、処理する接続要求ごとにスレッドを作成します。 プライマリスレッドがスレッドを作成したときにフロントエンドアプリケーションが多数の短命接続を開始した場合、ApsaraDB RDS for MySQLは、back_logパラメーターに基づいて、短命接続リクエストがキューに入るように制御します。 キュー内の待機中の接続リクエストの数がback_logパラメーターの値を超えた場合、ApsaraDB RDS for MySQLは新しい接続リクエストを拒否します。 ApsaraDB RDS for MySQLで多数の短期接続を処理する場合は、このパラメーターの値を大きくします。

  • 症状: このパラメーターの値が小さい場合、アプリケーションでは次のエラーが発生する可能性があります。

    SQLSTATE[HY000] [2002] Connection timed out;
  • 提案: このパラメーターを3000に設定します。

rpl_semi_sync_master_timeout

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: RDSインスタンスは半同期レプリケーションモードを使用します。 プライマリRDSインスタンスからトランザクションがコミットされる前に、セカンダリRDSインスタンスがトランザクションのすべてのバイナリログを受信するまで待つ必要があります。 待機期間がこのパラメーターの値を超えると、タイムアウトエラーが報告され、RDSインスタンスのレプリケーションモードは非同期レプリケーションに低下します。 この場合、セカンダリRDSインスタンスがプライマリRDSインスタンスのすべてのバイナリログを受信すると、RDSインスタンスのレプリケーションモードは自動的に半非同期レプリケーションに変更されます。

  • 提案: このパラメーターを1000に設定します。 単位:ミリ秒。 1000値は1秒に等しい。 RDSインスタンスに高いデータ信頼性が必要な場合は、このパラメーターの値を大きくして、半同期レプリケーションによる劣化を防ぐことができます。 ただし、このパラメーターを大きな値に設定した場合、RDSインスタンスは、大きなトランザクションの実行中に書き込み要求を長期間処理できない可能性があります。 その結果、システムの高可用性 (HA) コンポーネントがインスタンス障害を検出し、インスタンスの切り替えがトリガーされます。

innodb_autoinc_lock_mode

  • サポートされているMySQLバージョン: 8.0、5.7、5.6、5.5。

  • パラメーターの変更後にインスタンスを再起動するかどうか: はい。

  • 機能: MySQL 5.1.22以降では、InnoDBでinnodb_autoinc_lock_modeパラメーターを使用して、自動インクリメント主キーの自動インクリメントロックを管理します。 有効な値: 0、1、および2。

    • 値0は、従来のモードを示す。 このモードでは、SQLステートメントは自動インクリメント値が取得される前に自動インクリメントロックを保持し、SQLステートメントはステートメントの実行終了時に自動インクリメントロックを解放します。 このモードは、データ挿入の同時実行性に大きく影響します。

    • 値1は、連続モードを示す。 このモードでは、SQLステートメントは、自動インクリメント値が取得される前に自動インクリメントロックを保持します。 SQL文を実行して固定数のデータ行を挿入すると、自動インクリメント値が取得された直後に自動インクリメントロックが解除されます。 不確定な数のデータ行を挿入するためにSQL文が実行された場合、SQL文は文の実行終了時に自動インクリメントロックを解除します。

    • 値2は、インターリーブモードを示す。 このモードでは、SQLステートメントは、自動インクリメント値が取得される前に自動インクリメントロックを保持します。 自動インクリメント値が取得されると、固定数のデータ行が挿入されているかどうかに関係なく、SQL文は直ちに自動インクリメントロックを解除します。

  • 提案: このパラメーターを2に設定します。 値2は、データの挿入に使用されるすべてのSQL文が軽量ロックを使用することを示します。 これにより、AUTO-INCデッドロックを防ぎ、データ挿入パフォーマンスを向上させます。 ApsaraDB RDS for MySQLでは、バイナリログの形式は行です。 このパラメーターを2に設定すると、データの不整合エラーは発生しません。

    説明

    パラメーターを2に設定した場合、バイナリログの形式をrowに設定する必要があります。

query_cache_size

  • サポートされているMySQLバージョン: 5.7、5.6、5.5。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメーターは、MySQLクエリキャッシュのメモリ容量を管理します。 MySQLクエリキャッシュを有効にすると、システムはクエリを実行する前にクエリキャッシュをロックし、キャッシュ内のクエリ結果を確認します。 クエリ結果がクエリキャッシュに存在する場合、システムは直接結果を返します。 そうでない場合、システムはクエリを実行して結果を取得します。 INSERT、UPDATE、DELETEなどの操作により、クエリキャッシュが無効になることがあります。 構文またはインデックスを変更すると、クエリキャッシュが無効になることもあります。 クエリキャッシュが頻繁に無効化されると、RDSインスタンスに圧力がかかります。 RDSインスタンスのデータが頻繁に更新されない場合、クエリキャッシュはクエリ効率を大幅に向上させることができます。 ただし、RDSインスタンスが少数のテーブルに対して多数の書き込み操作を処理する場合、クエリキャッシュのロックメカニズムによってロックの競合が頻繁に発生する可能性があります。 ロックされたテーブルの書き込み要求と読み取り要求は、クエリキャッシュがロック解除されるのを待ちます。 これにより、SELECTステートメントのクエリ効率が低下します。

  • 症状: 多数のデータベース接続の状態は、クエリのクエリキャッシュのチェッククエリキャッシュロックの待機、およびクエリキャッシュの結果の格納です。

  • 提案: デフォルトでは、ApsaraDB RDSはクエリキャッシュを無効にします。 クエリキャッシュを有効にし、前の症状が発生した場合は、クエリキャッシュを無効にします。

net_write_タイムアウト

  • サポートされているMySQLバージョン: 8.0、5.7、5.6、5.5。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメーターは、ApsaraDB RDSがブロックをクライアントに送信する前に待機するタイムアウト期間を設定します。

  • 症状: パラメータ値が小さい場合、クライアントは次のエラーが発生する可能性があります。

    "the last packet successfully received from the server was milliseconds ago" or "the last packet sent successfully to the server was milliseconds ago"
  • 提案: このパラメータのデフォルト値は60です。 値が小さい場合、ネットワークが安定していない場合や、クライアントが各ブロックを処理するのに長い時間が必要な場合に、クライアントがRDSインスタンスから頻繁に切断される可能性があります。 このパラメーターの値を増やすことを推奨します。

tmp_table_サイズ

  • サポートされているMySQLバージョン: 8.0、5.7、5.6、5.5。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメータは、内部メモリ内一時テーブルの最大サイズを指定します。 このパラメーターで指定されたメモリは、各スレッドに割り当てられます。 内部メモリ内一时テーブルの実际の最大サイズは、tmp_table_sizeまたはmax_heap_table_sizeのいずれか小さい値で指定します。 インメモリ一時テーブルのサイズが最大サイズを超えた場合、ApsaraDB RDS for MySQLは自動的にテーブルをディスク上のMyISAMテーブルに変換します。 クエリ文を最適化するときは、一時テーブルを使用しないでください。 一時テーブルを使用する必要がある場合は、一時テーブルがメモリに格納されていることを確認してください。

  • 症状: GROUP BYまたはDISTINCT句を含む複雑なSQL文に一時テーブルを使用し、インデックスを使用して最適化できない場合、SQL文の実行に時間がかかります。

  • 提案: SQL文に多数のGROUP BY句またはDISTINCT句が含まれ、RDSインスタンスに十分なメモリがある場合は、tmp_table_sizeパラメーターとmax_heap_table_sizeパラメーターの値を増やしてクエリのパフォーマンスを向上させます。

loose_rds_max_tmp_disk_スペース

  • サポートされているMySQLバージョン: 5.6と5.5。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメーターは、RDSインスタンス上の一時ファイルのサイズを管理します。

  • 症状: 一時ファイルのサイズがloose_rds_max_tmp_disk_spaceパラメーターの値を超えると、アプリケーションで次のエラーが発生することがあります。

    The table '/home/mysql/dataxxx/tmp/#sql_2db3_1' is full
  • 提案: インデックス作成またはその他の方法を使用して、一時ファイルのサイズが大きくなるSQL文を最適化できるかどうかを確認します。 インスタンスに十分なスペースがある場合は、このパラメーターの値を増やして、SQL文が正常に実行されるようにします。

loose_tokudb_buffer_pool_ratio

  • サポートされているMySQLバージョン: 5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: はい。

  • 機能: このパラメータは、TokuDBテーブルで使用できるバッファメモリのサイズを指定します。 たとえば、innodb_buffer_pool_sizeパラメーターが1000 MBに設定され、tokudb_buffer_pool_ratioパラメーターが50% を示す50に設定されている場合、TokuDBテーブルで使用できるバッファメモリのサイズは500 MBになります。

  • 提案: RDSインスタンスでTokuDBエンジンが使用されている場合は、このパラメーターの値を大きくして、TokuDBテーブルのアクセスパフォーマンスを向上させます。

loose_max_statement_time

  • サポートされているMySQLバージョン: 5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメーターは、RDSインスタンスの最大クエリ期間を管理します。 デフォルトでは、クエリの期間は制限されていません。 このパラメーターが設定されていて、クエリ期間が指定された制限を超えると、クエリは失敗します。

  • 症状: クエリ期間がこのパラメーターの値を超えると、次のエラーが発生します。

    ERROR 3006 (HY000): Query execution was interrupted, max_statement_time exceeded
    説明

    パラメーターが変更されると、変更は新しい接続に対してのみ有効になります。 変更を有効にするには、既存の接続を再接続する必要があります。

  • 提案: SQL文の実行期間を管理する場合は、このパラメーターの値を指定します。 単位:ミリ秒。

loose_rds_threads_running_high_ウォーターマーク

  • サポートされているMySQLバージョン: 5.6と5.5。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメーターは、同時クエリの数を管理します。 たとえば、rds_threads_running_high_watermarkパラメーターを100に設定すると、合計100のMySQLクエリを同時に実行できます。 追加のクエリは拒否されます。

  • 提案: このパラメーターを使用して、ピーク時のバーストリクエストとリクエストを処理し、RDSインスタンスを保護できます。

innodb_buffer_pool_インスタンス

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: はい。

  • 機能: このパラメーターは、innodb_buffer_pool_sizeパラメーターで指定されたInnoDBバッファプールのサイズが1 GBを超える場合、InnoDBバッファプールを特定の数のインスタンスに分割します。 各インスタンスには、独自のロック、セマフォ、バッファチャンク、および論理的にリンクされたリストがあります。 その結果、インスタンス間で競合が存在せず、同時の読み取りと書き込みがサポートされます。 RDSインスタンスのバッファプールのサイズが大きい場合、このパラメーターはバッファプールを特定の数のインスタンスに分割します。 これにより、異なるスレッドがデータの読み書きに使用するリソースの競合が軽減され、同時実行パフォーマンスが向上します。

  • 提案: このパラメーターを {LEAST(DBInstanceClassMemory/1073741824, 8)} に設定します。

table_open_cache_インスタンス

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: はい。

  • 機能: このパラメーターは、セッション間のテーブルキャッシュの競合を減らすために、table_open_cache/table_open_cache_instancesの式を使用して計算される特定のサイズの複数のキャッシュインスタンスにオープンテーブルキャッシュを分割します。

  • 提案: このパラメーターを16に設定します。

table_open_キャッシュ

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメーターは、サーバーがテーブルキャッシュインスタンスで開いたままにしておくことができるテーブルの最大数を指定します。 このパラメーターの値が小さすぎると、同時実行性の高いシナリオでSQLクエリのパフォーマンスが影響を受ける可能性があります。 大きな値は、高いメモリ消費を引き起こす可能性がある。 このパラメーターの値を増やすときは、RDSインスタンスのメモリ使用量をメモする必要があります。

  • 提案: このパラメーターを {LEAST(DBInstanceClassMemory/1073741824*512, 8192)} に設定します。

innodb_adaptive_hash_index

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメーターは、適応ハッシュインデックス機能を無効にするか有効にするかを決定します。 アダプティブハッシュインデックスは、クエリ条件に基づいてデータベース内のリーフノードをすばやく見つけ、I/O操作の数を減らすのに役立ちます。

  • 症状: このパラメーターがONに設定されている場合、クエリのパフォーマンスへの影響は、実行するSQL文によって異なります。 ステートメントによっては、アダプティブハッシュインデックスのメンテナンスを引き起こす可能性があります。 たとえば、DDLステートメントがテーブルで実行されると、適応ハッシュインデックスがメモリから消去されます。 その結果、SQL文の実行がブロックされたり、クエリのパフォーマンスが低下したりします。

  • 提案: このパラメーターをOFFに設定します。 このパラメーターを変更する方法の詳細については、「ApsaraDB RDS For MySQLのアダプティブハッシュインデックスのベストプラクティス」をご参照ください。

open_files_limit

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: はい。

  • 機能: このパラメーターは、RDSインスタンスで同時に開くことができるファイルハンドルの数を指定します。 また、innodb_open_filesパラメーターの設定にも影響します。

  • 提案: このパラメーターを655350に設定します。 RDSインスタンスの仕様が32 CPUコア以上で、アクティブなセッションまたはテーブルの数が多い場合は、実際の状況に基づいてこのパラメーターの値を増やすことができます。 このパラメーターがインスタンスファイルの数より大きい値に設定されている場合、インスタンスの実行は影響を受けません。

loose_innodb_rds_afer_ddl

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。 サポートされているマイナーエンジンバージョン: 20200630以降。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメーターは、一部のDDL操作を高速化するために使用され、RDSインスタンスのパフォーマンスに対するDDL操作の影響を軽減します。

  • 提案: このパラメーターを有効にして、ワークロードに対するDDL操作の影響を軽減します。 このパラメーターを有効にすると、ApsaraDB RDSチームによって開発されたバッファプール管理メカニズムが使用されます。 このメカニズムにより、一部のDDL操作が高速化され、ワークロードに対するDDL操作の影響が軽減されます。

innodb_thread_並行性

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメーターは、InnoDBで許可されるスレッドの最大数を指定します。 値0は、同時スレッド数に制限がないことを示します。 RDSインスタンスの同時実行性が高いためにパフォーマンスの問題が発生した場合は、このパラメーターを変更してInnoDBの同時実行性を制御できます。

  • このパラメーターは、同時実行性の高いシステムでのパフォーマンス調整に使用されます。

  • 提案: 同時実行性の高いパフォーマンスの問題が発生しない場合は、この値を0に設定することを推奨します。 値ゼロは、同時実行が無制限であることを示します。

binlog_transaction_dependency_history_size

  • サポートされているMySQLバージョン: マイナーエンジンバージョンの20210930以降を実行するRDSインスタンスのMySQL 8.0、マイナーエンジンバージョンの20211231以降を実行するRDSインスタンスのMySQL 5.7。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: WRITESET機能を有効にすると、最後に変更された行のトランザクション情報がハッシュ後にメモリに保存されます。 このパラメーターは、メモリに保存できるハッシュエントリの最大数を指定します。 上限に達すると、すべての情報がクリアされます。

  • 症状: このパラメーターを小さすぎる値に設定すると、セカンダリRDSインスタンスでの並列再生の同時実行性が影響を受けます。 その結果、プライマリRDSインスタンスとセカンダリRDSインスタンスの間でレプリケーション遅延が発生します。

  • 提案: このパラメーターを500000に設定します。 このパラメーターを変更する方法の詳細については、「WRITESET関連パラメーターの変更」をご参照ください。

binlog_transaction_dependency_tracking

  • サポートされているMySQLバージョン: マイナーエンジンバージョンの20210930以降を実行するRDSインスタンスのMySQL 8.0、マイナーエンジンバージョンの20211231以降を実行するRDSインスタンスのMySQL 5.7。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメータは、MySQLが並列レプリケーションを管理する方法を指定します。 このパラメーターをWRITESETに設定すると、トランザクション間の行レベルの競合を検出できます。 このようにして、セカンダリRDSインスタンスでより高速な並列再生を実現できます。

  • 提案: このパラメーターをWRITESETに設定します。 このパラメーターを変更する方法の詳細については、「WRITESET関連パラメーターの変更」をご参照ください。

innodb_max_dirty_pages_pct_lwm

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: バッファプール内のダーティページの割合がこのパラメーターの値よりも大きい場合、ダーティページの割合を制御するためにプレフラッシュが有効になります。 値0は、プレフラッシュが無効であることを示す。 このパラメーターの値は、innodb_max_dirty_pages_pctパラメーターの値より小さい必要があります。

  • 提案: このパラメーターを10に設定します。

eq_range_index_dive_limit

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメータは、同等の範囲の最大数を指定します。 クエリ内の等価条件の等価範囲の数がこのパラメーターの値以上の場合、オプティマイザーは統計を使用して実行計画を計算します。 クエリ内の等価条件の等価範囲の数がこのパラメーターの値未満の場合、オプティマイザーはindex diveメソッドを使用してデータをサンプリングし、統計を取得してから、統計を使用して実行計画を計算します。

  • 提案: このパラメーターを、MySQL 5.6を実行するRDSインスタンスの場合は10に設定し、MySQL 5.7とMySQL 8.0を実行するRDSインスタンスの場合は100に設定します。

innodb_flush_ネイバー

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメーターは、特定のInnoDBバッファープールからフラッシュされたダーティページと同じ範囲でダーティページをフラッシュするかどうかを指定します。 有効な値:

    • 0: 指定されたダーティページと同程度のダーティページはフラッシュされません。

    • 1: 指定されたダーティページまたは隣接するダーティページと同じエクステント内のダーティページがフラッシュされます。

    • 2: 指定されたダーティページと同じエクステント内のすべてのダーティページがフラッシュされます。

  • 提案: このパラメーターを0に設定します。

innodb_lock_wait_timeout

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメーターは、InnoDBトランザクションが行ロックを待ってからトランザクションが中止される時間を指定します。 単位は秒です。

  • 提案: このパラメーターを50に設定します。

innodb_lru_scan_深さ

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメーターは、バッファプール内のLRU (Least Recently used) ページリストをスキャンするために使用されるページクリーナースレッドのスキャン深度を指定します。 このパラメーターは、バッファプールのフラッシュ操作に影響します。

  • 提案: このパラメーターを {LEAST(DBInstanceClassMemory/1048576/8, 8192)} に設定します。

innodb_purge_スレッド

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: はい。

  • 機能: このパラメーターは、InnoDBがアンドゥレコードをパージするために使用するバックグラウンドスレッドの数を指定します。 大きな値は、アンドゥレコードをパージする効率を改善する。 これにより、アンドゥファイルの蓄積が防止される。 場合によっては、値が大きいとDML操作とクエリの効率が向上します。

  • 提案: このパラメーターをLEAST(DBInstanceClassMemory/1073741824, 8) に設定します。

innodb_log_file_サイズ

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: はい。

  • 機能性:

    • redoロググループ内の各ログファイルのサイズを指定します。 ログファイルの合計サイズは512 GBを超えることはできません。 合計サイズは、innodb_log_file_size * innodb_log_files_in_groupパラメーターで指定します。 デフォルト値は48 MBです。

    • ほとんどの場合、ログファイルのサイズは十分に大きくなければなりません。 このようにして、サーバーは1時間以上の書き込み要求を処理するためのredoログのためのより多くのストレージを持ちます。 これにより、ピーク時とオフピーク時のワークロードのバランスをとることができます。 このパラメーターの値が大きい場合、バッファプールで必要なチェックポイント更新の数は少なくなります。 これにより、ディスクI/Oリソースの消費が少なくなります。 しかし、ログファイルのサイズが大きすぎると、障害からの復旧に要する時間が長くなる。

  • 提案: インスタンスの仕様に基づいてこのパラメーターを設定します。

innodb_sync_array_サイズ

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: はい。

  • 機能: このパラメーターは、ミューテックスまたはロック待ち配列のサイズを定義します。 大きな値は、スレッドの調整に使用される内部データ構造を分割します。 これにより、待機中のスレッド数が多いワークロードの同時実行性が向上します。 RDSインスタンスを起動するときに、このパラメーターを設定する必要があります。 このパラメーターの設定は変更できません。 多数の待機スレッドを頻繁に生成するワークロードには、このパラメーターを大きな値に設定することをお勧めします。 ほとんどの場合、待機中のスレッドの数が768を超える場合は、このパラメーターの値を増やすことができます。

  • 提案: このパラメーターを128に設定します。

innodb_page_クリーナー

  • サポートされているMySQLバージョン: 8.0と5.7。

  • パラメーターの変更後にインスタンスを再起動するかどうか: はい。

  • 機能: このパラメーターは、バッファプールインスタンスからダーティページをフラッシュするために使用されるページクリーナースレッドの数を指定します。 複数のページクリーナースレッドが存在する場合、各バッファプールインスタンスのフラッシュタスクは、アイドル状態のページクリーナースレッドに分散されます。 innodb_page_cleanersパラメーターのデフォルト値は4です。 ページクリーナースレッドの数がバッファプールインスタンスの数を超える場合、システムはinnodb_page_cleanersパラメーターをinnodb_buffer_pool_instancesパラメーターの値に設定します。

  • 提案: このパラメーターを {LEAST(DBInstanceClassMemory/1073741824, 8)} に設定します。

innodb_open_ファイル

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: はい。

  • 機能: このパラメーターは、InnoDBが同時に開くことができるファイルハンドルの最大数を指定します。

  • 症状: このパラメーターの値が小さい場合、インスタンスのパフォーマンスに影響を与える次のエラーが発生する可能性があります。

    [Warning] [MY-012152] [InnoDB] Open files * exceeds the limit *
  • 提案: このパラメーターを20000に設定します。

default_time_zone

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: はい。

  • 機能: このパラメータは、デフォルトのタイムゾーンを指定します。

  • 症状: このパラメーターが空の場合、ホストのタイムゾーンが使用されます。 この場合、オペレーティングシステムがロック待機状態に入る可能性があり、CPU使用率が大幅に増加する可能性があります。

  • 提案: ビジネス要件に基づいてこのパラメーターを設定します。 このパラメーターを変更する方法の詳細については、「ApsaraDB RDS For MySQLのtime_zoneパラメーターのベストプラクティス」をご参照ください。

general_log

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメーターは、一般的なクエリログ機能を有効にするかどうかを指定します。

  • 症状: 一般的なクエリログ機能を有効にすると、いくつかのエラーが発生します。 詳細については、「ApsaraDB RDS For MySQLの一般的なクエリログ機能に関するFAQ」をご参照ください。

  • 提案: このパラメーターをOFFに設定します。

innodb_io_容量

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: このパラメーターは、各バックグラウンドタスクに対して1秒間にInnoDBで許可されるI/O操作の最大数を指定します。

  • 提案: このパラメーターを20000に設定します。

innodb_io_capacity_max

  • サポートされているMySQLバージョン: 8.0、5.7、5.6。

  • パラメーターの変更後にインスタンスを再起動するかどうか: いいえ。

  • 機能: フラッシュ操作が遅れた場合、InnoDBはinnodb_io_capacityパラメーターの値よりも高いレートで操作を強制的に実行できます。 innodb_io_capacity_maxパラメーターは、バックグラウンドタスクのInnoDBの最大IOPSを指定します。

  • 提案: このパラメーターを40000に設定します。