tencent cloud

フィードバック

メモリ使用率が高すぎる

最終更新日:2021-08-04 14:41:57

    現象の説明

    TencentDB for MySQLに、突発的なメモリの増加が発生し、メモリが解放されずに増加し続ける現象です。具体的なパフォーマンスは、次の図に示すように、インスタンス監視のメモリ使用率監視グラフに表示されます。

    突発的な増加の後、または長期的なゆっくりとした増加の過程で、最終的に過度に高いレベル(>96%) に達し、かつ一定範囲内で小幅に変動することによって、カスタマイズされたBasic Cloud Monitorメモリアラームを頻繁に発生させる恐れがあります。

    故障リスク

    非効率なSQLステートメントまたは不適切なデータベースパラメータ設定により、メモリ使用率が増加することがあります。TencentDB for MySQLの2ノード、3ノードアーキテクチャを使用している場合に、突発的な業務のピークに遭遇すると、クラウドデータベースのメモリのOOM(Out Of Memory)が引き起こされる可能性があります。クラウドデータベースがOOMにより使用できなくなると、マスター/スレーブの切り替えがトリガーされて、マスター/スレーブの切り替え中はサービスが短時間利用できなくなりますが、インスタンスが利用できない時間は、通常60秒を超えることはありません。業務ピーク時にマスター/スレーブの切り替えが発生すると、業務の安定性と連続性に深刻な影響を及ぼす恐れがあります。

    解決方法

    MySQLのメモリは、globalレベルの共有メモリとsessionレベルのプライベートメモリの2つの部分に大別できます。

    • 共有メモリはインスタンス作成時に割り当てられたメモリ領域で、すべての接続を共有します。
    • プライベートメモリは、MySQLサーバーへの接続時にシステムによって割り当てられます。
      一部の特殊なSQLまたはフィールドタイプにより、単一のスレッドに複数のキャッシュが割り当てられることがあります。OOM異常の発生は、すべて各接続のプライベートメモリに起因しています。データベース接続数を制限し、非効率なSQLを最適化することにより、メモリ使用率が高すぎるというリスクを低減することができます。MySQLのメモリ使用率が引き続き高すぎる場合は、メモリ設定をアップグレードすることで、データベース全体の同時実行性と安定性を向上させることができます。メモリパラメータの詳細な説明については、メモリ割り当て問題をご参照ください。

    処理手順

    1. 低速SQLを最適化し、sessionレベルのプライベートメモリの使用量を減少させます。DBbrianによる、低速SQLの分析が可能です。
    2. 業務に影響を与えることなく、無効な長時間の接続を減少させ、プログラム側の接続プール設定を減少させるか、またはプログラム側の同時実行レベルを低下させます。DBbrianによる、リアルタイムセッション情報の確認が可能です。
    3. メモリ使用状況の監視(オプション、MySQL 5.7およびそれ以上のバージョンに適用):performance_schemaのメモリ監視機能を有効にする場合、performance_schemaのメモリ監視機能を有効化するには、performance_schemaを有効化した後、performance_schemaライブラリで、グローバルディメンションのメモリ使用率分析テーブル:memory_summary_global_by_event_nameなど、memory_summaryで始まる名前のメモリ使用状況を確認する必要があります。
    4. 最適化完了後の手段:TencentDB for MySQL設定のアップグレード
    説明:

    • アップグレードプロセスは、業務の通常の使用に影響しません。アップグレードが完了すると、秒レベルの瞬断のみで、切り替えが実施されます。業務が再接続メカニズムを備えていることを確認してください。
    • メモリまたはCPUリソースの不足によって業務の通常運用に影響が出ることを防ぐため、現在のネットワークインスタンス上のリソースに対して合理的なアラームポリシーを設定し、リソース不足の隠れたリスクを事前に発見できるようにしてください。詳細については、アラームポリシーをご参照ください。
    お問い合わせ

    カスタマーサービスをご提供できるため、ぜひお気軽にお問い合わせくださいませ。

    テクニカルサポート

    さらにサポートが必要な場合は、サポートチケットを送信して弊社サポートチームにお問い合わせください。24時間365日のサポートをご提供します。

    電話サポート(24 時間365日対応)