OS モニタリング - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

OS モニタリング

Amazon RDS for MySQL または MariaDB の DB インスタンスは Linux オペレーティングシステム上で実行され、基盤となるシステムリソース (CPU、メモリ、ネットワーク、ストレージ) を使用します。

MySQL [(none)]> SHOW variables LIKE 'version%'; +-------------------------+---------------------+ | Variable_name | Value | +-------------------------+---------------------+ | version | 8.0.28 | | version_comment | Source distribution | | version_compile_machine | aarch64 | | version_compile_os | Linux | | version_compile_zlib | 1.2.11 | +-------------------------+---------------------+ 5 rows in set (0.00 sec)

データベースと基盤となるオペレーティングシステムの全体的なパフォーマンスは、システムリソースの使用率に大きく依存します。たとえば、CPU はデータベースソフトウェアの命令を実行し、他のシステムリソースを管理するため、システムのパフォーマンスにとって重要なコンポーネントです。CPU が過剰に使用されている場合 (つまり、負荷が DB インスタンスにプロビジョニングされた量よりも多くの CPU パワーを必要とする場合)、この問題はデータベース、ひいてはアプリケーションのパフォーマンスと安定性に影響を与えます。

データベースエンジンはメモリの割り当てと解放を動的に行います。RAM に現在の作業を行うのに十分なメモリがない場合、システムはメモリページをディスク上のスワップメモリに書き込みます。ディスクは SSD NVMe テクノロジーをベースにしていても、メモリよりもはるかに低速であるため、メモリを過剰に割り当てるとパフォーマンスが低下します。メモリ使用率が高いと、追加のメモリをサポートするためにページファイルのサイズが大きくなるため、データベース応答の待ち時間が長くなります。メモリ割り当てが大きすぎて RAM とスワップメモリ領域の両方を使い果たしてしまうと、データベースサービスが使用できなくなり、ユーザに次のようなエラーが表示されることがあります。[ERROR] mysqld: Out of memory (Needed xyz bytes)

MySQL と MariaDB のデータベース管理システムは、ストレージ用のディスクで構成されるストレージサブシステムを利用します。オンディスク構造テーブル、インデックス、バイナリログ、やり直しログ、元に戻すログ、二重書き込みバッファファイルなど。したがって、データベースは、他の種類のソフトウェアとは対照的に、大量のディスクアクティビティを実行する必要があります。データベースを最適に運用するには、ディスク I/O の使用率とディスク容量の割り当てを監視および調整することが重要です。データベースがディスクがサポートする最大 IOPS またはスループットの制限に達すると、データベースのパフォーマンスが影響を受ける可能性があります。たとえば、インデックススキャンによってランダムアクセスが急増すると、1 秒間に大量の I/O 操作が発生し、最終的には基盤となるストレージの制限に達する可能性があります。フルテーブルスキャンでは IOPS の上限に達しないかもしれませんが、1 秒あたりのメガバイト単位の高スループットが発生する可能性があります。次のようなエラーがあるため、ディスク容量の割り当てを監視してアラートを生成することが重要です。OS error code 28: No space left on deviceデータベースが使用できなくなったり、破損したりする可能性があります。

Amazon RDS は、DB インスタンスが実行されているオペレーティングシステムのメトリックスをリアルタイムで提供します。Amazon RDS は 1 セットの OS メトリックスを自動的に公開しますCloudWatch。これらのメトリックスは Amazon RDS コンソールで表示および分析できます。CloudWatchダッシュボード、および選択したメトリックにアラームを設定できますCloudWatch。その例を以下に示します。

  • CPUUtilization— CPU 使用率のパーセンテージ。

  • BinLogDiskUsage— バイナリログが占めるディスク容量の量。

  • FreeableMemory— 使用可能なランダム・アクセス・メモリの量。これは、の値を表しますMemAvailableのフィールド/proc/meminfo

  • ReadIOPS— 1 秒あたりのディスク読み取り I/O 操作の平均数。

  • WriteThroughput— ローカルストレージの 1 秒あたりにディスクに書き込まれる平均バイト数。

  • NetworkTransmitThroughput— DB ノード上の送信ネットワークトラフィック。データベーストラフィックと Amazon RDS トラフィックの両方をモニタリングとレプリケーションに使用します。

Amazon RDS が公開しているすべてのメトリックスの完全なリファレンスについては、以下を参照してください。CloudWatch、を参照してくださいアマゾンCloudWatchAmazon RDS のメトリックスAmazon RDS のドキュメントに記載されています。

次のグラフは、次の例を示しています。CloudWatchAmazon RDS コンソールに表示される Amazon RDS のメトリックス。

CloudWatchAmazon RDS コンソールに表示される Amazon RDS のメトリックス

次のグラフは、に表示される同様の指標を示していますCloudWatchダッシュボード。

CloudWatchに表示されている Amazon RDS のメトリックスCloudWatchコンソール

もう 1 つの OS メトリックは次の方法で収集されます。モニタリングの強化アマゾン RDS 用。このツールを使用すると、リアルタイムのシステムメトリックスと OS プロセス情報が提供されるため、MariaDB 用 Amazon RDS および MySQL DB 用 Amazon RDS インスタンスの状態をより詳細に把握できます。あなたが拡張モニタリングを有効にするDB インスタンス上で必要な精度を設定すると、ツールはオペレーティングシステムのメトリックスとプロセス情報を収集します。これらの情報は、次の場所で表示および分析できます。アマゾン RDS コンソール、次の画面に示すように。

拡張モニタリングによって収集された OS メトリック

拡張モニタリングが提供する主な指標には次のものがあります。

  • cpuUtilization.total— 使用中の CPU の合計パーセンテージ。

  • cpuUtilization.user— ユーザー・プログラムが使用している CPU の割合。

  • memory.active— 割り当てられたメモリの量(キロバイト単位)。

  • memory.cached— ファイル・システム・ベースのI/Oをキャッシュするために使用されるメモリの量。

  • loadAverageMinute.one— 直近の 1 分間に CPU 時間を要求したプロセスの数。

メトリックの全リストについては、を参照してください。拡張モニタリングの OS メトリックAmazon RDS のドキュメントに記載されています。

Amazon RDS コンソールの OS プロセスリストには、DB インスタンスで実行されている各プロセスの詳細が表示されます。リストは次の 3 つのセクションに分かれています。

  • OS プロセス‒ このセクションには、すべてのカーネルとシステムプロセスの概要がまとめられています。通常、これらのプロセスはデータベースのパフォーマンスにほとんど影響しません。

  • RDS プロセス— このセクションでは、その概要を示します。AWSAmazon RDS DB インスタンスをサポートするために必要なプロセス。たとえば、Amazon RDS 管理エージェント、モニタリングおよび診断プロセス、および同様のプロセスが含まれます。

  • RDS チャイルドプロセス— このセクションでは、DB インスタンスをサポートする Amazon RDS プロセスの概要を示します。この場合はmysqldプロセスとそのスレッド。ザ・mysqldスレッドは親スレッドの下にネストされて表示されるmysqldプロセス。

次の画面図は、Amazon RDS コンソールの OS プロセスリストを示しています。

Amazon RDS コンソールの OS プロセスリスト

Amazon RDS は、拡張モニタリングからお客様にメトリックスを配信しますCloudWatchログアカウント。Amazon RDS コンソールに表示されるモニタリングデータは、から取得されます。CloudWatchログ。あなたもできますDB インスタンスのメトリックスをログストリームとして取得するからCloudWatchログ。これらのメトリックは JSON 形式で保存されます。以下から拡張モニタリングの JSON 出力を使用できます。CloudWatch選択した監視システムにログインします。

にグラフを表示するにはCloudWatchダッシュボードを作成して、メトリックが定義済みのしきい値を超えた場合にアクションを開始するアラームを作成するには、次の場所でメトリックフィルターを作成する必要がありますCloudWatchからCloudWatchログ。詳細な手順については、を参照してください。AWS リポスト拡張モニタリングをフィルタリングする方法についてCloudWatchAmazon RDS の自動カスタムメトリックスを生成するためのログ。

次の例は、カスタム指標を示しています。CPU.UserCustom/RDS名前空間。このカスタムメトリックは、以下をフィルタリングすることによって作成されます。cpuUtilization.userからのモニタリング指標の強化CloudWatchログ。

CPU.user カスタムメトリック

メトリックが利用可能になったらCloudWatchリポジトリ、で表示、分析できますCloudWatchダッシュボードにさらに計算やクエリ操作を適用し、アラームを設定してこの特定のメトリックを監視し、観測値が定義済みのアラーム条件と一致しない場合にアラートを生成します。