Profilazione delle operazioni di Amazon DocumentDB - Amazon DocumentDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Profilazione delle operazioni di Amazon DocumentDB

Puoi utilizzare il profiler in Amazon DocumentDB (con compatibilità con MongoDB) per registrare il tempo di esecuzione e i dettagli delle operazioni eseguite sul tuo cluster. Il profiler è utile per monitorare le operazioni più lente sul cluster per aiutare a migliorare le prestazioni delle singole query e le prestazioni complessive del cluster.

Per impostazione predefinita, la funzionalità profiler è disabilitata. Se abilitato, il profiler registra le operazioni che richiedono più tempo di un valore di soglia definito dal cliente (ad esempio, 100 ms) in Amazon Logs. CloudWatch I dettagli registrati includono il comando profilato, l'ora, il riepilogo del piano e i metadati del client. Dopo aver registrato le operazioni su CloudWatch Logs, puoi utilizzare CloudWatch Logs Insights per analizzare, monitorare e archiviare i dati di profilazione di Amazon DocumentDB. Le query comuni vengono fornite nella sezione Interrogazioni comuni.

Se abilitato, il profiler utilizza risorse aggiuntive nel cluster. Ti consigliamo di iniziare con un valore di soglia elevato (ad esempio, 500 ms) e di ridurre gradualmente il valore per identificare le operazioni lente. Iniziare con un valore di soglia di 50 ms può causare problemi di prestazioni sul cluster per applicazioni a throughput elevato. Il profiler è abilitato a livello di cluster e funziona su tutte le istanze e i database di un cluster. Amazon DocumentDB registra le operazioni su Amazon CloudWatch Logs con la massima diligenza possibile.

Sebbene Amazon DocumentDB non imponga alcun costo aggiuntivo per abilitare il profiler, ti vengono addebitate le tariffe standard per l'utilizzo dei log. CloudWatch Per informazioni sui prezzi di CloudWatch Logs, consulta i CloudWatch prezzi di Amazon.

Operazioni supportate

Il profiler Amazon DocumentDB supporta le seguenti operazioni:

  • aggregate

  • count

  • delete

  • distinct

  • find(OP_ e comandoQUERY)

  • findAndModify

  • insert

  • update

Limitazioni

Lo slow query profiler è in grado di emettere i log del profiler solo se l'intero set di risultati della query può essere contenuto in un batch e se il set di risultati è inferiore a 16 MB (dimensione massima). BSON I set di risultati superiori a 16 MB vengono automaticamente suddivisi in più batch.

La maggior parte dei driver o delle shell può impostare una dimensione del batch predefinita piccola. È possibile specificare la dimensione del batch come parte della query. Per acquisire i log delle query lente, si consiglia di utilizzare un batch di dimensioni superiori a quelle del set di risultati previsto. Se non siete sicuri della dimensione del set di risultati o se questa varia, potete anche impostare la dimensione del batch su un numero elevato (ad esempio 100k).

Tuttavia, l'utilizzo di un batch di dimensioni maggiori significa che sarà necessario recuperare più risultati dal database prima di inviare una risposta al client. Per alcune domande, ciò potrebbe creare ritardi più lunghi prima di ottenere risultati. Se non si prevede di utilizzare l'intero set di risultati, è possibile che si impieghino più operazioni di I/O per elaborare la query e buttare via il risultato.

Abilitazione del profiler Amazon DocumentDB

L'abilitazione del profiler su un cluster è un processo in tre fasi. Assicurati che tutti i passaggi siano stati completati, altrimenti i log di profilazione non verranno inviati a Logs. CloudWatch Il profiler è impostato a livello di cluster e viene eseguito su tutti i database e le istanze del cluster.

Per abilitare il profiler su un cluster
  1. Poiché non puoi modificare un gruppo predefinito di parametri del cluster, assicurati di disporre di un gruppo personalizzato di parametri del cluster. Per ulteriori informazioni, consulta Creazione di gruppi di parametri del cluster Amazon DocumentDB.

  2. Utilizzando un gruppo di parametri personalizzato del cluster disponibile, modifica i seguenti parametri: profiler, profiler_threshold_ms, e profiler_sampling_rate. Per ulteriori informazioni, consulta Modifica dei gruppi di parametri del cluster Amazon DocumentDB.

  3. Crea o modifica il cluster per utilizzare il gruppo di parametri del cluster personalizzato e per abilitare l'esportazione profiler dei log in Logs. CloudWatch

Le sezioni seguenti mostrano come implementare questi passaggi utilizzando AWS Management Console and the AWS Command Line Interface ().AWS CLI

Using the AWS Management Console
  1. Prima di iniziare, crea un cluster Amazon DocumentDB e un gruppo di parametri cluster personalizzato se non ne hai già uno. Per ulteriori informazioni, consulta Creazione di gruppi di parametri del cluster Amazon DocumentDB e Creazione di un cluster Amazon DocumentDB.

  2. Utilizzando un gruppo personalizzato di parametri del cluster disponibile, modifica i parametri seguenti. Per ulteriori informazioni, consulta Modifica dei gruppi di parametri del cluster Amazon DocumentDB.

    • profiler— Abilita o disabilita la profilazione delle query. I valori consentiti sono enabled e disabled. Il valore predefinito è disabled. Per abilitare il profiling, impostare il valore su enabled.

    • profiler_threshold_ms— Quando profiler è impostato suenabled, profiler-threshold-ms vengono registrati tutti i comandi che richiedono più tempo del previsto. CloudWatch I valori consentiti sono [50-INT_MAX]. Il valore predefinito è 100.

    • profiler_sampling_rate— La frazione di operazioni lente che devono essere profilate o registrate. I valori consentiti sono [0.0-1.0]. Il valore predefinito è 1.0.

  3. Modifica il cluster per utilizzare il gruppo di parametri del cluster personalizzato e imposta le esportazioni dei log del profiler per la pubblicazione su Amazon CloudWatch.

    1. Nel riquadro di navigazione scegliere Clusters (Cluster) per aggiungere il nuovo gruppo di parametri personalizzato a un cluster.

    2. Scegliere il pulsante a sinistra del nome del cluster a cui si desidera associare il gruppo di parametri. Selezionare Actions (Operazioni), quindi Modify (Modifica) per modificare il cluster.

    3. In Cluster options (Opzioni cluster), scegliere il gruppo di parametri personalizzato dal passaggio precedente per aggiungerlo al cluster.

    4. In Esportazioni di log, seleziona i log di Profiler da pubblicare su Amazon. CloudWatch

    5. Scegliere Continue (Continua) per visualizzare un riepilogo delle modifiche.

    6. Dopo aver verificato le modifiche, è possibile applicarle immediatamente o durante la successiva finestra di manutenzione in Scheduling of modifications (Pianificazione delle modifiche).

    7. Scegliere Modify cluster (Modifica cluster) per aggiornare il cluster con il nuovo gruppo di parametri.

Using the AWS CLI

La procedura seguente abilita il profiler su tutte le operazioni supportate per il cluster sample-cluster.

  1. Prima di iniziare, assicurati di avere un gruppo di parametri del cluster personalizzati disponibile eseguendo il comando seguente e verificando che l'output di un gruppo di parametri del cluster non abbia default nel nome e che abbia docdb3.6 come famiglia del gruppi di parametri. Se non disponi di un gruppo di parametri cluster non predefinito, consulta Creazione di gruppi di parametri del cluster Amazon DocumentDB.

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

    Nel seguente output, solo sample-parameter-group soddisfa entrambi i criteri.

    [ [ "default.docdb3.6", "docdb3.6" ], [ "sample-parameter-group", "docdb3.6" ] ]
  2. Utilizzando il gruppo personalizzato di parametri del cluster, modifica i parametri seguenti:

    • profiler— Abilita o disabilita la profilazione delle query. I valori consentiti sono enabled e disabled. Il valore predefinito è disabled. Per abilitare il profiling, impostare il valore su enabled.

    • profiler_threshold_ms— Quando profiler è impostato suenabled, tutti i comandi richiedono più tempo di quello a profiler -threshold-ms cui sono stati registrati. CloudWatch I valori consentiti sono [0-INT_MAX]. L'impostazione di questo valore su 0 esegue il profiling di tutte le operazioni supportate. Il valore predefinito è 100.

    • profiler_sampling_rate— La frazione di operazioni lente che devono essere profilate o registrate. I valori consentiti sono [0.0-1.0]. Il valore predefinito è 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. Modifica il tuo cluster Amazon DocumentDB in modo che utilizzi il gruppo di parametri del cluster sample-parameter-group personalizzato del passaggio precedente e imposti il parametro --enable-cloudwatch-logs-exports su. profiler

    Il codice seguente modifica il cluster in sample-cluster modo che utilizzi quello del sample-parameter-group passaggio precedente e lo aggiunge profiler alle esportazioni di CloudWatch Logs abilitate.

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

    L'aspetto dell'output di questa operazione è simile al seguente.

    { "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 } }

Disattivazione del profiler Amazon DocumentDB

Per disabilitare il profiler, si disabilitano sia il profiler parametro che l'esportazione dei profiler log in Logs. CloudWatch

Disabilitazione del profiler

È possibile disabilitare il profiler parametro utilizzando AWS Management Console o AWS CLI, come segue.

Using the AWS Management Console

La procedura seguente utilizza AWS Management Console per disabilitare Amazon DocumentDBprofiler.

  1. Accedi a e apri AWS Management Console la console Amazon DocumentDB all'indirizzo https://console.aws.amazon.com/docdb.

  2. Nel riquadro di navigazione scegliere Parameter groups (Gruppi di parametri). Scegliere quindi il nome del gruppo di parametri del cluster su cui si desidera disabilitare il profiler.

  3. Nella pagina Cluster parameters (Parametri cluster) risultante, selezionare il pulsante a sinistra del parametro profiler e scegliere Edit (Modifica).

  4. Nella finestra di dialogo Modify profiler (Modifica profiler), scegliere disabled nell'elenco.

  5. Scegliere Modify cluster parameter (Modifica parametro cluster).

Using the AWS CLI

Per disabilitare profiler su un cluster utilizzando l' AWS CLI, modificare il cluster come segue.

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

Disattivazione dell'esportazione dei log del profiler

È possibile disabilitare l'esportazione dei profiler log in CloudWatch Logs utilizzando o, come segue. AWS Management Console AWS CLI

Using the AWS Management Console

La procedura seguente utilizza AWS Management Console per disabilitare l'esportazione dei log in Amazon DocumentDB in. CloudWatch

  1. Apri la console Amazon DocumentDB all'indirizzo https://console.aws.amazon.com/docdb.

  2. Nel pannello di navigazione scegliere Clusters (Cluster). Scegliere il pulsante a sinistra del nome del cluster per il quale si desidera disabilitare l'esportazione dei log.

  3. Nel menu Actions (Operazioni) selezionare Modify (Modifica).

  4. Scorrere verso il basso fino alla sezione Log exports (Esportazioni log) e deselezionare Profiler logs (Log del profiler).

  5. Scegli Continua.

  6. Esaminare le modifiche, quindi scegliere quando applicare la modifica al cluster.

    • Apply during the next scheduled maintenance window (Applica durante la prossima finestra di manutenzione pianificata)

    • Apply immediately (Applica immediatamente)

  7. Scegliere Modify cluster (Modifica cluster).

Using the AWS CLI

Il codice seguente modifica il cluster sample-cluster e disabilita CloudWatch i log del profiler.

Per Linux, macOS o Unix:

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

Per Windows:

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

L'aspetto dell'output di questa operazione è simile al seguente.

{ "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 } }

Accesso ai log del profiler di Amazon DocumentDB

Segui questi passaggi per accedere ai log del tuo profilo su Amazon CloudWatch.

  1. Apri la CloudWatch console all'indirizzo https://console.aws.amazon.com/cloudwatch/.

  2. Assicurati di trovarti nella stessa regione del cluster Amazon DocumentDB.

  3. Nel riquadro di navigazione scegli Logs (Log).

  4. Per trovare i log del profiler per il cluster, nell'elenco scegliere /aws/docdb/yourClusterName/profiler.

    I log del profiler per ogni istanza sono disponibili nei rispettivi nomi di istanza.

Interrogazioni comuni

Di seguito sono riportate alcune query comuni che è possibile utilizzare per analizzare i comandi profilati. Per ulteriori informazioni su CloudWatch Logs Insights, vedere Analisi dei dati di registro con CloudWatch Logs Insights e Query di esempio.

Ottieni le 10 operazioni più lente su una raccolta specificata

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

Ottieni tutte le operazioni di aggiornamento su una raccolta che ha richiesto più di 60 ms

filter millis > 60 and op = "update"

Ottieni le 10 operazioni più lente dell'ultimo mese

sort millis desc | limit 10

Ottieni tutte le domande con un riepilogo del piano COLLSCAN

filter planSummary="COLLSCAN"