翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
CPU 使用率が高い
CPU 使用率が高いことは、Amazon DocumentDB の使用中に発生する可能性のある問題の 1 つです。このセクションでは、問題を解決するためのインサイトを提供します。
識別 - 問題を特定する
Amazon DocumentDB インスタンスの CPU 使用率が高いと、すべてのデータベースオペレーションでレイテンシーが増加するため、アプリケーションの速度が低下します。Amazon DocumentDB の CPU 使用率が最適なレベルを超えると、クエリの実行時間が長くなり、接続確立に時間がかかり、アプリケーションの応答性が低下します。プライマリインスタンスの CPU ピークは書き込みオペレーションを遅らせ、レプリカのピークは読み取りオペレーションのレイテンシーを長くします。
Amazon DocumentDB の CPU 使用率が高い一般的な原因には、次のようなものがあります。
-
コレクションスキャン: 適切なインデックスのないクエリは、完全なコレクションスキャンを強制し、過剰な CPU を消費してすべてのドキュメントを調べます。
-
接続スパイク: アプリケーション接続の突然の急増により、認証とセッション管理に必要な CPU リソースが圧迫されます。
-
複雑な集約: マルチステージオペレーション (ソート、グループ化、結合) は、特に最適化されたインデックスのない大規模なデータセットで、かなりの CPU を消費します。
-
非効率的なクエリ: CPU 使用率が高いのは、大きな結果セットと正規表現オペレーションをスキャンした結果です。
-
書き込み負荷の高いワークロード: 頻繁な更新と一括挿入は、ドキュメント処理、インデックス更新、トランザクションログ記録により CPU を負担します。
調査 - メトリクスを収集する
Amazon DocumentDB は、Amazon CloudWatch を介したモニタリングを提供します。Amazon DocumentDB メトリクスは、クラスターレベルとインスタンスレベルのメトリクスに広く分類できます。CPU、メモリ、および接続に関連するリソースについては、リソースの消費量がインスタンスに固有であるため、インスタンスレベルのメトリクスを確認します。CPU スパイクを示しているインスタンス (プライマリまたはレプリカ) を特定し、スパイク時間を書き留めます。
の CPU 使用率の CloudWatch メトリクスCPUUtilization。
診断 - 根本原因を見つける
CPU スパイクのインスタンスとタイムラインを特定したら、次に CPU 使用率に大きな影響を与えている原因を診断します。CPU スパイクを引き起こす原因は複数あるため、 では、以下から原因を特定できます。
接続: DatabaseConnectionsおよび を含む CloudWatch メトリクスをチェックしDatabaseConnectionsMax、接続にスパイクがあり、CPU スパイクタイムと一致する場合、短時間の接続の急増が CPU スパイクの原因である可能性があります。
クエリ: 接続でない場合、クエリが原因である可能性があります。パフォーマンスインサイトを有効にしている場合は、インスタンスのパフォーマンスインサイトコンソールに移動し、インスタンスのクエリを確認します。クエリを確認するもう 1 つの方法は、プロファイラーからのものです。
解決 - 問題を修正する
接続バースト: 接続バーストが CPU スパイクの原因である場合は、アプリケーションで接続を再利用するか、接続プーリングを実装することを検討してください。高接続の最適化の詳細については、「」を参照してくださいAmazon DocumentDB との接続の問題。
クエリディストリビューション: CPU スパイクがプライマリインスタンスの読み取りクエリによって発生した場合は、クエリ結果に結果整合性がある場合は、読み取りオペレーションをレプリカインスタンスにリダイレクトすることを検討してください。
クエリの最適化: クエリまたは一連のクエリによって CPU が急増している場合は、クエリがインデックスを使用していない場合にインデックスを追加するなど、クエリを最適化することを検討してください。クエリの最適化の詳細については、「」を参照してくださいクエリの実行が遅い。
インスタンススケーリング: 最適化作業後も CPU 使用率が一貫して高い場合は、ワークロード要件を効果的に処理するために、より多くの CPU 容量を持つより大きなインスタンスクラスにアップグレードします。
サーバーレス: 短期間の CPU スパイクを引き起こす予測不可能なワークロードの場合は、 の使用を検討してくださいAmazon DocumentDB Serverless の使用。サーバーレスインスタンスは、需要に基づいてリソースを自動的にスケーリングするため、このようなワークロードに固定インスタンスサイズをプロビジョニングする必要はありません。