Profilierung von Amazon DocumentDB-Vorgängen - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Profilierung von Amazon DocumentDB-Vorgängen

Sie können den Profiler in Amazon DocumentDB (mit MongoDB-Kompatibilität) verwenden, um die Ausführungszeit und Details der Operationen zu protokollieren, die auf Ihrem Cluster ausgeführt wurden. Profiler ist für die Überwachung der langsamsten Operationen in Ihrem Cluster nützlich. So können Sie die Leistung einzelner Abfragen und die allgemeine Cluster-Leistung verbessern.

Standardmäßig ist die Profiler-Funktion deaktiviert. Wenn diese Option aktiviert ist, protokolliert der Profiler bei Amazon Vorgänge, die länger dauern als ein vom Kunden definierter Schwellenwert (z. B. 100 ms) CloudWatch Protokolle. Zu den protokollierten Details gehören der Befehl, für den das Profil erstellt wird, die Uhrzeit, die Planübersicht und die Client-Metadaten. Nachdem die Operationen protokolliert wurden CloudWatch Protokolle, die Sie verwenden können CloudWatch Logs Insights zur Analyse, Überwachung und Archivierung Ihrer Amazon DocumentDB-Profilerstellungsdaten. Häufige Abfragen sind in Abschnitt Häufige Abfragen zu finden.

Wenn aktiviert, verbraucht der Profiler zusätzliche Ressourcen im Cluster. Sie sollten mit einem hohen Schwellenwert (z. B. 500 ms) beginnen und den Wert allmählich senken, um langsame Operationen zu identifizieren. Ein anfänglicher Schwellenwert von 50 ms kann für Anwendungen mit hohem Durchsatz zu Leistungsproblemen im Cluster führen. Der Profiler ist auf Cluster-Ebene aktiviert und funktioniert auf allen Instances und Datenbanken in einem Cluster. Amazon DocumentDB protokolliert Vorgänge bei Amazon CloudWatch Protokolliert nach bestem Wissen.

Amazon DocumentDB erhebt zwar keine zusätzlichen Gebühren für die Aktivierung des Profilers, Ihnen werden jedoch die Standardtarife für die Nutzung von berechnet CloudWatch Protokolle. Für Informationen über CloudWatch Preise für Protokolle finden Sie unterAmazon CloudWatch Preisgestaltung.

Unterstützte -Vorgänge

Amazon DocumentDB Profiler unterstützt die folgenden Operationen:

  • aggregate

  • count

  • delete

  • distinct

  • find (OP_QUERY und Befehl)

  • findAndModify

  • insert

  • update

Einschränkungen

Der Profiler für langsame Abfragen kann nur dann Profiler-Protokolle ausgeben, wenn die gesamte Ergebnismenge der Abfrage in einen Stapel passt und wenn die Ergebnismenge weniger als 16 MB (maximale BSON-Größe) beträgt. Ergebnissätze, die größer als 16 MB sind, werden automatisch in mehrere Batches aufgeteilt.

Die meisten Treiber oder Shells legen möglicherweise eine kleine Standardstapelgröße fest. Sie können die Batchgröße als Teil Ihrer Abfrage angeben. Für die Erfassung langsamer Abfrageprotokolle empfehlen wir eine Batchgröße, die die Größe Ihrer erwarteten Ergebnismenge übersteigt. Wenn Sie sich bezüglich der Größe der Ergebnismenge nicht sicher sind oder wenn sie variiert, können Sie die Batchgröße auch auf eine große Zahl festlegen (z. B. 100.000).

Die Verwendung einer größeren Batchgröße bedeutet jedoch, dass mehr Ergebnisse aus der Datenbank abgerufen werden müssen, bevor eine Antwort an den Client gesendet wird. Bei einigen Abfragen kann dies zu längeren Verzögerungen führen, bis Sie Ergebnisse erhalten. Wenn Sie nicht vorhaben, die gesamte Ergebnismenge zu verwenden, ist es möglich, dass Sie mehr I/Os für die Verarbeitung der Abfrage aufwenden und das Ergebnis dann verwerfen.

Den Amazon DocumentDB Profiler aktivieren

Die Aktivierung des Profilers auf einem Cluster erfolgt in drei Schritten. Stellen Sie sicher, dass alle Schritte abgeschlossen sind, da andernfalls keine Profilerstellungsprotokolle an gesendet werden CloudWatch Protokolle. Profiler wird auf Cluster-Ebene festgelegt und auf allen Datenbanken und Instances des Clusters ausgeführt.

So aktivieren Sie den Profiler in einem Cluster
  1. Da Sie eine Standard-Cluster-Parametergruppe nicht ändern können, stellen Sie sicher, dass Sie über eine verfügbare benutzerdefinierte Cluster-Parametergruppe verfügen. Weitere Informationen finden Sie unter Amazon DocumentDB-Cluster-Parametergruppen erstellen.

  2. Ändern Sie mithilfe einer verfügbaren benutzerdefinierten Cluster-Parametergruppe die folgenden Parameter: profiler, profiler_threshold_ms und profiler_sampling_rate. Weitere Informationen finden Sie unter Amazon DocumentDB-Cluster-Parametergruppen ändern.

  3. Erstellen oder ändern Sie Ihren Cluster, um die benutzerdefinierte Cluster-Parametergruppe zu verwenden und den Export zu ermöglichenprofilerprotokolliert zu CloudWatch Logs.

In den folgenden Abschnitten wird gezeigt, wie Sie diese Schritte über die AWS Management Console und die AWS Command Line Interface (AWS CLI) implementieren.

Using the AWS Management Console
  1. Bevor Sie beginnen, erstellen Sie einen Amazon DocumentDB-Cluster und eine benutzerdefinierte Cluster-Parametergruppe, falls Sie noch keinen haben. Weitere Informationen erhalten Sie unter Amazon DocumentDB-Cluster-Parametergruppen erstellen und Einen Amazon DocumentDB-Cluster erstellen.

  2. Ändern Sie die folgenden Parameter mithilfe einer verfügbaren benutzerdefinierten Cluster-Parametergruppe. Weitere Informationen finden Sie unter Amazon DocumentDB-Cluster-Parametergruppen ändern.

    • profiler— Aktiviert oder deaktiviert die Erstellung von Abfrageprofilen. Zugelassene Werte sind enabled und disabled. Der Standardwert ist disabled. Um Profiling zu aktivieren, legen Sie den Wert auf enabled fest.

    • profiler_threshold_ms— Wannprofilerist eingestellt aufenabled, alle Befehle, die länger dauern als profiler-threshold-mssind angemeldet CloudWatch. Zugelassene Werte sind [50-INT_MAX]. Der Standardwert ist 100.

    • profiler_sampling_rate— Der Anteil der langsamen Operationen, für die ein Profil erstellt oder protokolliert werden sollte. Zugelassene Werte sind [0.0-1.0]. Der Standardwert ist 1.0.

  3. Ändern Sie Ihren Cluster so, dass er die benutzerdefinierte Cluster-Parametergruppe verwendet, und legen Sie fest, dass die Profiler-Log-Exporte auf Amazon veröffentlicht werden CloudWatch.

    1. Wählen Sie im Navigationsbereich die Option Clusters (Cluster), um die benutzerdefinierte Parametergruppe zu einem Cluster hinzuzufügen.

    2. Wählen Sie die Schaltfläche links neben dem Namen des Clusters, dem Sie die Parametergruppe zuordnen möchten. Wählen Sie Actions (Aktionen) und dann Modify (Ändern) aus, um den Cluster zu ändern.

    3. Wählen Sie unter Cluster options (Cluster-Optionen) die benutzerdefinierte Parametergruppe aus dem obigen Schritt aus, um sie Ihrem Cluster hinzuzufügen.

    4. UnterExporte protokollieren, wählenProfiler-Protokolleum auf Amazon zu veröffentlichen CloudWatch.

    5. Wählen Sie Continue (Weiter) aus, um eine Übersicht Ihrer Änderungen anzuzeigen.

    6. Nachdem Sie Ihre Änderungen überprüft haben, können Sie diese sofort oder während des nächsten Wartungsfensters unter Scheduling of modifications (Planen von Änderungen) anwenden.

    7. Wählen Sie Modify cluster (Cluster ändern) aus, um den Cluster mit der neuen Parametergruppe zu aktualisieren.

Using the AWS CLI

Mit dem folgenden Verfahren wird der Profiler für alle unterstützten Operationen für den Cluster sample-cluster aktiviert.

  1. Bevor Sie beginnen, stellen Sie sicher, dass Sie über eine benutzerdefinierte Clusterparametergruppe verfügen, indem Sie den folgenden Befehl ausführen und die Ausgabe für eine Clusterparametergruppe überprüfen, die nicht default im Namen und die Parametergruppenfamilie docdb3.6 hat. Wenn Sie über keine nicht standardmäßige Clusterparametergruppe verfügen, siehe Amazon DocumentDB-Cluster-Parametergruppen erstellen.

    aws docdb describe-db-cluster-parameter-groups \ --query 'DBClusterParameterGroups[*].[DBClusterParameterGroupName,DBParameterGroupFamily]'

    In der folgenden Ausgabe erfüllt nur sample-parameter-group beide Kriterien.

    [ [ "default.docdb3.6", "docdb3.6" ], [ "sample-parameter-group", "docdb3.6" ] ]
  2. Ändern Sie mithilfe Ihrer benutzerdefinierten Cluster-Parametergruppe die folgenden Parameter:

    • profiler— Aktiviert oder deaktiviert die Erstellung von Abfrageprofilen. Zugelassene Werte sind enabled und disabled. Der Standardwert ist disabled. Um Profiling zu aktivieren, legen Sie den Wert auf enabled fest.

    • profiler_threshold_ms— Wannprofilerist eingestellt aufenabled, alle Befehle dauern länger alsprofiler -threshold-mssind angemeldet CloudWatch. Zugelassene Werte sind [0-INT_MAX]. Wenn Sie diesen Wert auf 0 setzen, wird ein Profil für alle unterstützten Operationen erstellt. Der Standardwert ist 100.

    • profiler_sampling_rate— Der Anteil der langsamen Operationen, für die ein Profil erstellt oder protokolliert werden sollte. Zugelassene Werte sind [0.0-1.0]. Der Standardwert ist 1.0.

    aws docdb modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name sample-parameter-group \ --parameters ParameterName=profiler,ParameterValue=enabled,ApplyMethod=immediate \ ParameterName=profiler_threshold_ms,ParameterValue=100,ApplyMethod=immediate \ ParameterName=profiler_sampling_rate,ParameterValue=0.5,ApplyMethod=immediate
  3. Ändern Sie Ihren Amazon DocumentDB-Cluster so, dass er densample-parameter-groupbenutzerdefinierte Cluster-Parametergruppe aus dem vorherigen Schritt und legt den Parameter fest--enable-cloudwatch-logs-exportszuprofiler.

    Der folgende Code modifiziert den Clustersample-clusterum das zu verwendensample-parameter-groupaus dem vorherigen Schritt und fügt hinzuprofilerzu den aktivierten CloudWatch Protokolliert Exporte.

    aws docdb modify-db-cluster \ --db-cluster-identifier sample-cluster \ --db-cluster-parameter-group-name sample-parameter-group \ --cloudwatch-logs-export-configuration '{"EnableLogTypes":["profiler"]}'

    Die Ausgabe dieser Operation sieht in etwa folgendermaßen aus.

    { "DBCluster": { "AvailabilityZones": [ "us-east-1c", "us-east-1b", "us-east-1a" ], "BackupRetentionPeriod": 1, "DBClusterIdentifier": "sample-cluster", "DBClusterParameterGroup": "sample-parameter-group", "DBSubnetGroup": "default", "Status": "available", "EarliestRestorableTime": "2020-04-07T02:05:12.479Z", "Endpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com", "ReaderEndpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com", "MultiAZ": false, "Engine": "docdb", "EngineVersion": "3.6.0", "LatestRestorableTime": "2020-04-08T22:08:59.317Z", "Port": 27017, "MasterUsername": "test", "PreferredBackupWindow": "02:00-02:30", "PreferredMaintenanceWindow": "tue:09:50-tue:10:20", "DBClusterMembers": [ { "DBInstanceIdentifier": "sample-instance-1", "IsClusterWriter": true, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 }, { "DBInstanceIdentifier": "sample-instance-2", "IsClusterWriter": true, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 } ], "VpcSecurityGroups": [ { "VpcSecurityGroupId": "sg-abcd0123", "Status": "active" } ], "HostedZoneId": "ABCDEFGHIJKLM", "StorageEncrypted": true, "KmsKeyId": "arn:aws:kms:us-east-1:<accountID>:key/sample-key", "DbClusterResourceId": "cluster-ABCDEFGHIJKLMNOPQRSTUVWXYZ", "DBClusterArn": "arn:aws:rds:us-east-1:<accountID>:cluster:sample-cluster", "AssociatedRoles": [], "ClusterCreateTime": "2020-01-10T22:13:38.261Z", "EnabledCloudwatchLogsExports": [ "profiler" ], "DeletionProtection": true } }

Den Amazon DocumentDB Profiler deaktivieren

Um den Profiler zu deaktivieren, deaktivieren Sie beideprofilerParameter und der Export vonprofilerloggt sich ein zu CloudWatch Logs.

Deaktivieren des Profilers

Sie können den Parameter profiler wie folgt entweder mit der AWS Management Console oder AWS CLI deaktivieren.

Using the AWS Management Console

Das folgende Verfahren verwendetAWS Management Consoleum Amazon DocumentDB zu deaktivierenprofiler.

  1. Melden Sie sich an beiAWS Management Console, und öffnen Sie die Amazon DocumentDB-Konsole unterhttps://console.aws.amazon.com/docdb.

  2. Wählen Sie im Navigationsbereich Parameter groups (Parametergruppen) aus. Wählen Sie dann den Namen der Cluster-Parametergruppe aus, für die Sie den Profiler deaktivieren möchten.

  3. Klicken Sie auf der Seite Cluster parameters (Clusterparameter) auf die Schaltfläche links neben dem profiler-Parameter und wählen Sie Edit (Bearbeiten).

  4. Wählen Sie im Dialogfeld Modify profiler (Profiler ändern) disabled in der Liste aus.

  5. Wählen Sie Modify Cluster Parameter (Cluster-Parameter ändern).

Using the AWS CLI

Um profiler auf einem Cluster mithilfe der AWS CLI zu deaktivieren, ändern Sie den Cluster wie folgt.

aws docdb modify-db-cluster-parameter-group \ --db-cluster-parameter-group-name sample-parameter-group \ --parameters ParameterName=profiler,ParameterValue=disabled,ApplyMethod=immediate

Deaktivieren des Profiler-Protokollexports

Sie können den Export deaktivierenprofilerloggt sich ein zu CloudWatch Protokolliert mit einer derAWS Management ConsoleoderAWS CLI, wie folgt.

Using the AWS Management Console

Das folgende Verfahren verwendetAWS Management Consoleum den Export von Protokollen durch Amazon DocumentDB zu deaktivieren CloudWatch.

  1. Öffnen Sie die Amazon DocumentDB-Konsole unterhttps://console.aws.amazon.com/docdb.

  2. Klicken Sie im Navigationsbereich auf Clusters (Cluster). Wählen Sie die Schaltfläche links neben dem Namen des Clusters, für den Sie den Export von Protokollen deaktivieren möchten.

  3. Wählen Sie aus dem Menü Actions (Aktionen) die Option Modify (Ändern) aus.

  4. Scrollen Sie nach unten zum Abschnitt Log exports (Protokollexporte) und deaktivieren Sie Profiler logs (Profiler-Protokolle).

  5. Klicken Sie auf Weiter.

  6. Überprüfen Sie Ihre Änderungen und wählen Sie dann aus, wann diese Änderung auf Ihren Cluster angewendet werden soll.

    • Apply during the next scheduled maintenance window (Anwendung während des nächsten geplanten Wartungsfensters)

    • Apply immediately (Sofort anwenden)

  7. Wählen Sie Modify Cluster (Cluster bearbeiten).

Using the AWS CLI

Der folgende Code modifiziert den Clustersample-cluster und deaktiviert CloudWatch Profiler-Protokolle.

Für Linux, macOS oder Unix:

aws docdb modify-db-cluster \ --db-cluster-identifier sample-cluster \ --cloudwatch-logs-export-configuration '{"DisableLogTypes":["profiler"]}'

Für Windows:

aws docdb modify-db-cluster ^ --db-cluster-identifier sample-cluster ^ --cloudwatch-logs-export-configuration '{"DisableLogTypes":["profiler"]}'

Die Ausgabe dieser Operation sieht in etwa folgendermaßen aus.

{ "DBCluster": { "AvailabilityZones": [ "us-east-1c", "us-east-1b", "us-east-1a" ], "BackupRetentionPeriod": 1, "DBClusterIdentifier": "sample-cluster", "DBClusterParameterGroup": "sample-parameter-group", "DBSubnetGroup": "default", "Status": "available", "EarliestRestorableTime": "2020-04-08T02:05:17.266Z", "Endpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com", "ReaderEndpoint": "sample-cluster.node.us-east-1.docdb.amazonaws.com", "MultiAZ": false, "Engine": "docdb", "EngineVersion": "3.6.0", "LatestRestorableTime": "2020-04-09T05:14:44.356Z", "Port": 27017, "MasterUsername": "test", "PreferredBackupWindow": "02:00-02:30", "PreferredMaintenanceWindow": "tue:09:50-tue:10:20", "DBClusterMembers": [ { "DBInstanceIdentifier": "sample-instance-1", "IsClusterWriter": true, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 }, { "DBInstanceIdentifier": "sample-instance-2", "IsClusterWriter": true, "DBClusterParameterGroupStatus": "in-sync", "PromotionTier": 1 } ], "VpcSecurityGroups": [ { "VpcSecurityGroupId": "sg-abcd0123", "Status": "active" } ], "HostedZoneId": "ABCDEFGHIJKLM", "StorageEncrypted": true, "KmsKeyId": "arn:aws:kms:us-east-1:<accountID>:key/sample-key", "DbClusterResourceId": "cluster-ABCDEFGHIJKLMNOPQRSTUVWXYZ", "DBClusterArn": "arn:aws:rds:us-east-1:<accountID>:cluster:sample-cluster", "AssociatedRoles": [], "ClusterCreateTime": "2020-01-10T22:13:38.261Z", "DeletionProtection": true } }

Zugriff auf Ihre Amazon DocumentDB Profiler-Protokolle

Gehen Sie wie folgt vor, um auf Ihre Profilprotokolle bei Amazon zuzugreifen CloudWatch.

  1. Öffne das CloudWatch Konsole beihttps://console.aws.amazon.com/cloudwatch/.

  2. Stellen Sie sicher, dass Sie sich in derselben Region wie Ihr Amazon DocumentDB-Cluster befinden.

  3. Wählen Sie im Navigationsbereich Logs (Logs) aus.

  4. Um die Profiler-Protokolle für Ihren Cluster zu finden, wählen Sie in der Liste /aws/docdb/yourClusterName/profiler aus.

    Die Profilprotokolle für jede Ihrer Instances sind unter den jeweiligen Instance-Namen verfügbar.

Häufige Abfragen

Im Folgenden finden Sie einige häufige Abfragen, die Sie verwenden können, um Ihre Befehle, für die Profile erstellt wurden, zu analysieren. Für weitere Informationen über CloudWatch Logs Insights finden Sie unterAnalysieren von Protokolldaten mit CloudWatch Logt EinblickeundBeispielabfragen.

Abruf der 10 langsamsten Operationen für eine angegebene Sammlung

filter ns="test.foo" | sort millis desc | limit 10

Abruf aller Aktualisierungsoperationen für eine Sammlung, die mehr als 60 ms dauerten

filter millis > 60 and op = "update"

Abruf der 10 langsamsten Operationen im letzten Monat

sort millis desc | limit 10

Abruf aller Abfragen mit COLLSCAN-Planübersicht

filter planSummary="COLLSCAN"