翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
OS のモニタリング
Amazon RDS for MySQL または MariaDB の DB インスタンスは、Linux オペレーティングシステムで稼働しており、この OS は、基盤システムリソース、つまり、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 データベース管理システムでは、ディスク上の構造OS error code 28: No space left on
device などのエラーが発生すると、データベースが利用できなくなったり、データが破損したりする恐れがあるからです。
Amazon RDS では、DB インスタンスが稼働するオペレーティングシステムのメトリクスをリアルタイムで確認でき、1 つの OS メトリクスセットが CloudWatch に自動的に発行されます。これらのメトリクスは、Amazon RDS コンソールと CloudWatch ダッシュボードに表示して分析でき、CloudWatch で選択したメトリクスにアラームを設定することも可能です。以下に例を示します。
-
CPUUtilization– CPU 使用率。 -
BinLogDiskUsage– バイナリログが占めるディスク容量。 -
FreeableMemory– 使用可能な RAM 容量。これは、/proc/meminfoのMemAvailableフィールドの値を示しています。 -
ReadIOPS– 1 秒あたりのディスク読み取り I/O オペレーションの平均回数。 -
WriteThroughput– ローカルストレージに対し 1 秒間にディスクに書き込まれる平均バイト数。 -
NetworkTransmitThroughput– DB ノードの送信ネットワークトラフィック。データベーストラフィックと、モニタリングおよびレプリケーションに使用される Amazon RDS トラフィックの合計を示しています。
Amazon RDS から CloudWatch に発行される全メトリクスの総合リファレンスについては、Amazon RDS ドキュメントの「Amazon RDS の Amazon CloudWatch メトリクス」を参照してください。
次の画像は、Amazon RDS コンソールに表示される Amazon RDS 向け CloudWatch メトリクスの例を示しています。
次の画像は、CloudWatch ダッシュボードに表示される同様のメトリクスを示しています。
他の一連の OS メトリクスは、Amazon RDS の拡張モニタリングによって収集します。このツールによって、リアルタイムのシステムメトリクスと OS プロセス情報を得ることで、Amazon RDS for MariaDB および Amazon RDS for MySQL DB インスタンスのヘルスをより詳細に可視化できます。DB インスタンスで拡張モニタリングを有効にし、目的の粒度を設定すると、オペレーティングシステムのメトリクスとプロセス情報が収集されます。こうした情報は、次の画像に示すように、Amazon RDS コンソールで表示し分析できます。
拡張モニタリングに用意されている主要なメトリクスを次に示します。
-
cpuUtilization.total– 使用中の CPU の合計使用率。 -
cpuUtilization.user– ユーザープログラムが使用中の CPU の使用率。 -
memory.active– 割り当てられたメモリの量 (キロバイト単位)。 -
memory.cached- ファイルシステムベースの I/O のキャッシュに使用されたメモリの量。 -
loadAverageMinute.one– 過去 1 分間に CPU 時間をリクエストしたプロセスの数。
メトリクスが網羅されたリストについては、Amazon RDS ドキュメントの「拡張モニタリングの OS メトリクス」を参照してください。
Amazon RDS コンソールの OS プロセスリストには、DB インスタンスで稼働している各プロセスの詳細が表示されます。リストは 3 つのセクションに分かれています。
-
OS プロセス ‒ このセクションは、すべてのカーネルプロセスとシステムプロセスを集約した概要を示しています。一般的に、これらのプロセスによって、データベースパフォーマンスへの影響が最小化されます。
-
RDS プロセス – このセクションは、Amazon RDS DB インスタンスのサポートに必要な AWS プロセスの概要を示しています。例えば、Amazon RDS 管理エージェント、モニタリングおよび診断プロセス、その他の同様のプロセスなどがこれに該当します。
-
RDS 子プロセス – このセクションは、DB インスタンスをサポートする Amazon RDS プロセスの概要を示しています (この画像では
mysqldプロセスとそのスレッド)。mysqldスレッドは親mysqldプロセスの下にネストされて表示されます。
次の画像は、Amazon RDS コンソールの OS プロセスリストを示しています。
Amazon RDS では、拡張モニタリングで収集したメトリクスが、CloudWatch Logs アカウントに配信されます。Amazon RDS コンソールに表示するモニタリングデータは、CloudWatch Logs から取得します。DB インスタンスのメトリクスは、ログストリームとして CloudWatch Logs から取得することもでき、これらのメトリクスは JSON 形式で保存されます。選択したモニタリングシステムで CloudWatch Logs からの拡張モニタリング JSON 出力を使用できます。
CloudWatch ダッシュボードにグラフを表示したり、メトリックが定義済みのしきい値を超えた場合にアクションを実行するアラームを作成したりするには、CloudWatch でメトリクスフィルターを作成して、CloudWatch Logs からメトリクスを取り出す必要があります。詳細な手順については、AWS re:Post の記事
次の画像の例は、Custom/RDS 名前空間の CPU.User カスタムメトリクスを示しています。このカスタムメトリクスを作成するには、CloudWatch Logs にある cpuUtilization.user 拡張モニタリングメトリクスをフィルタリングします。
CloudWatch リポジトリでメトリクスが利用可能になったら、CloudWatch ダッシュボードでそれらを表示して分析したり、数学およびクエリオペレーションをさらに適用したりできます。また、アラームを設定してこの特定のメトリクスをモニタリングし、観測値が定義済みのアラーム条件と一致しない場合にアラートを発行することも可能です。