View a markdown version of this page

Valutare la capacità fornita per un provisioning di dimensioni adeguate - Amazon Keyspaces (per Apache Cassandra)

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à.

Valutare la capacità fornita per un provisioning di dimensioni adeguate

Questa sezione fornisce una panoramica su come valutare se il provisioning è di dimensioni corrette sulle tabelle Amazon Keyspaces. Man mano che il carico di lavoro si evolve, è necessario modificare le procedure operative in modo appropriato, soprattutto quando la tabella Amazon Keyspaces è configurata in modalità di provisioning e si rischia di effettuare un provisioning eccessivo o insufficiente delle tabelle.

Le procedure descritte in questa sezione richiedono informazioni statistiche che devono essere acquisite dalle tabelle Amazon Keyspaces che supportano l'applicazione di produzione. Per comprendere il comportamento dell'applicazione, è necessario definire un periodo di tempo sufficientemente significativo da rilevare la stagionalità dei dati dell'applicazione. Ad esempio, se l'applicazione mostra pattern settimanali, l'utilizzo di un periodo di tre settimane dovrebbe fornire spazio sufficiente per analizzare le esigenze di velocità di trasmissione effettiva dell'applicazione.

Se non sai da dove iniziare, utilizza almeno un mese di utilizzo dei dati per i calcoli seguenti.

Durante la valutazione della capacità, puoi configurare le tabelle di Amazon Keyspaces Unità di capacità di lettura (RCU) e Unità di capacità di scrittura (WCU) indipendentemente.

Come recuperare le metriche di consumo dalle tabelle Amazon Keyspaces

Per valutare la capacità della tabella, monitora quanto segue CloudWatch metriche e seleziona la dimensione appropriata per recuperare le informazioni sulla tabella:

unità di capacità in lettura Unità di capacità in scrittura

ConsumedReadCapacityUnits

ConsumedWriteCapacityUnits

ProvisionedReadCapacityUnits

ProvisionedWriteCapacityUnits

ReadThrottleEvents

WriteThrottleEvents

È possibile eseguire questa operazione tramite AWS CLI o il Console di gestione AWS.

AWS CLI

Prima di recuperare le metriche di consumo della tabella, è necessario iniziare acquisendo alcuni punti dati storici utilizzando CloudWatch API.

Inizia creando due file: write-calc.json e read-calc.json. Questi file rappresentano i calcoli per la tabella. È necessario aggiornare alcuni campi, come indicato nella tabella seguente, in modo che corrispondano al proprio ambiente.

Nota

Se il nome della tabella non è univoco all'interno del tuo account, devi specificare anche il nome del keyspace.

Nome campo Definizione Esempio
<table-name> Il nome della tabella che stai analizzando SampleTable
<period> Il periodo di tempo utilizzato per valutare l'obiettivo di utilizzo, in base ai secondi Per un periodo di 1 ora è necessario specificare: 3600
<start-time> L'inizio dell'intervallo di valutazione, specificato nel formato ISO8601 21/02/2022T23:00:00
<end-time> La fine dell'intervallo di valutazione, specificato nel formato ISO8601 2022-02-22T06:00:00

Il file di calcolo in scrittura recupera il numero di WCU assegnate e utilizzate nel periodo di tempo per l'intervallo di date specificato. Genera inoltre una percentuale di utilizzo che può essere utilizzata per l'analisi. Il contenuto completo di write-calc.json il file dovrebbe apparire come nell'esempio seguente.

{ "MetricDataQueries": [ { "Id": "provisionedWCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ProvisionedWriteCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>" } ] }, "Period": <period>, "Stat": "Average" }, "Label": "Provisioned", "ReturnData": false }, { "Id": "consumedWCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ConsumedWriteCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>"" } ] }, "Period": <period>, "Stat": "Sum" }, "Label": "", "ReturnData": false }, { "Id": "m1", "Expression": "consumedWCU/PERIOD(consumedWCU)", "Label": "Consumed WCUs", "ReturnData": false }, { "Id": "utilizationPercentage", "Expression": "100*(m1/provisionedWCU)", "Label": "Utilization Percentage", "ReturnData": true } ], "StartTime": "<start-time>", "EndTime": "<end-time>", "ScanBy": "TimestampDescending", "MaxDatapoints": 24 }

Il file di calcolo letto utilizza una metrica simile. Questo file recupera quante RCU sono state assegnate e utilizzate durante il periodo di tempo per l'intervallo di date specificato. Il contenuto di read-calc.json il file dovrebbe apparire come in questo esempio.

{ "MetricDataQueries": [ { "Id": "provisionedRCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ProvisionedReadCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>" } ] }, "Period": <period>, "Stat": "Average" }, "Label": "Provisioned", "ReturnData": false }, { "Id": "consumedRCU", "MetricStat": { "Metric": { "Namespace": "AWS/Cassandra", "MetricName": "ConsumedReadCapacityUnits", "Dimensions": [ { "Name": "TableName", "Value": "<table-name>" } ] }, "Period": <period>, "Stat": "Sum" }, "Label": "", "ReturnData": false }, { "Id": "m1", "Expression": "consumedRCU/PERIOD(consumedRCU)", "Label": "Consumed RCUs", "ReturnData": false }, { "Id": "utilizationPercentage", "Expression": "100*(m1/provisionedRCU)", "Label": "Utilization Percentage", "ReturnData": true } ], "StartTime": "<start-time>", "EndTime": "<end-time>", "ScanBy": "TimestampDescending", "MaxDatapoints": 24 }

Dopo aver creato i file, puoi iniziare a recuperare i dati di utilizzo.

  1. Per recuperare i dati sull'utilizzo della scrittura, esegui il comando seguente:

    aws cloudwatch get-metric-data --cli-input-json file://write-calc.json
  2. Per recuperare i dati di utilizzo letti, emettete il comando seguente:

    aws cloudwatch get-metric-data --cli-input-json file://read-calc.json

Il risultato di entrambe le query è una serie di punti dati in formato JSON che possono essere utilizzati per l'analisi. I risultati dipendono dal numero di punti dati specificati, dal periodo e dai dati specifici del carico di lavoro. Potrebbe apparire come nell'esempio seguente.

{ "MetricDataResults": [ { "Id": "utilizationPercentage", "Label": "Utilization Percentage", "Timestamps": [ "2022-02-22T05:00:00+00:00", "2022-02-22T04:00:00+00:00", "2022-02-22T03:00:00+00:00", "2022-02-22T02:00:00+00:00", "2022-02-22T01:00:00+00:00", "2022-02-22T00:00:00+00:00", "2022-02-21T23:00:00+00:00" ], "Values": [ 91.55364583333333, 55.066631944444445, 2.6114930555555556, 24.9496875, 40.94725694444445, 25.61819444444444, 0.0 ], "StatusCode": "Complete" } ], "Messages": [] }
Nota

Se si specifica un breve periodo e un intervallo di tempo lungo, potrebbe essere necessario modificare il MaxDatapoints valore, che per impostazione predefinita è impostato su 24 nello script. Ciò rappresenta un punto dati per ora e 24 al giorno.

Console di gestione AWS
  1. Effettuare il login al Console di gestione AWS e vai al CloudWatch pagina di servizio all'indirizzo Guida introduttiva a Console di gestione AWS. Seleziona l'appropriato Regione AWS se necessario.

  2. Individua la sezione Metriche nella barra di navigazione a sinistra e scegli Tutte le metriche.

  3. Si apre una dashboard con due pannelli. Il pannello superiore mostra il grafico e il pannello inferiore contiene le metriche che desideri rappresentare graficamente. Scegli il pannello Amazon Keyspaces.

  4. Scegli il Metriche della tabella categoria dai pannelli secondari. Questo ti mostra le tabelle nella tua attuale Regione AWS.

  5. Identificare il nome della tabella scorrendo il menu verso il basso e selezionare le metriche dell'operazione di scrittura: ConsumedWriteCapacityUnits e ProvisionedWriteCapacityUnits

    Nota

    Questo esempio illustra le metriche delle operazioni di scrittura, ma puoi anche utilizzare questi passaggi per visualizzare graficamente le metriche delle operazioni di lettura.

  6. Seleziona la scheda Graphed metrics (2) (Metriche nel grafico) per modificare le formule. Per impostazione predefinita CloudWatch sceglie la funzione statistica Media per i grafici.

  7. Dopo aver selezionato entrambe le metriche nel grafico (la casella di controllo a sinistra), selezionare il menu Add math (Aggiungi matematica), seguito da Common (Comune), quindi selezionare la funzione Percentage (Percentuale). Ripetere la procedura due volte.

    La prima volta che si seleziona il Percentuale funzione.

    Seconda volta che si seleziona il Percentuale funzione.

  8. A questo punto dovresti avere quattro metriche nel menu in basso. Lavoriamo sul calcolo ConsumedWriteCapacityUnits. Per essere coerenti, devi abbinare i nomi a quelli che hai usato in AWS CLI sezione. Fare clic su m1 ID e modificare questo valore in consumedWCU.

  9. Modifica della statistica da Average (Media) a Sum (Somma). Questa azione crea automaticamente un'altra metrica chiamata ANOMALY_DETECTION_BAND. Ai fini di questa procedura, è possibile ignorarlo rimuovendo la casella di controllo sulla nuova generazione metrica ad1.

  10. Ripetere il passaggio 8 per rinominare m2 ID in provisionedWCU. Lasciare la statistica impostata su Average (Media).

  11. Scegli il Espressione 1 etichetta e aggiorna il valore in m1 e l'etichetta a WCU consumate.

    Nota

    Assicurati di aver selezionato solo m1 (casella di controllo a sinistra) e provisionedWCU per visualizzare correttamente i dati. Aggiorna la formula facendo clic Dettagli e cambiando la formula in consumedWCU/PERIOD(WCU consumato). Questo passaggio potrebbe anche generarne un altro ANOMALY_DETECTION_BAND metrica, ma ai fini di questa procedura è possibile ignorarla.

  12. Ora dovresti avere due grafici: uno che indica le WCU assegnate sulla tabella e l'altra che indica le WCU utilizzate.

  13. Aggiornare la formula percentuale selezionando il grafico Expression2 (e2). Rinominare le etichette e gli ID in utilizationPercentage. Rinomina la formula in modo che corrisponda 100* (m1/provisionedWCU).

  14. Rimuovi la casella di controllo da tutte le metriche tranne Percentuale di utilizzo per visualizzare i modelli di utilizzo. L'intervallo predefinito è impostato su 1 minuto, ma sentitevi liberi di modificarlo se necessario.

I risultati ottenuti dipendono dai dati effettivi del carico di lavoro. Gli intervalli con un utilizzo superiore al 100% sono soggetti a eventi di errore a bassa capacità di throughput. Offerte Amazon Keyspaces capacità di raffica, ma non appena la capacità di burst è esaurita, un valore superiore al 100% presenta eventi di errore di bassa capacità di throughput.

Come identificare le tabelle Amazon Keyspaces il cui provisioning è insufficiente

Per la maggior parte dei carichi di lavoro, una tabella è considerata sottodimensionata quando consuma costantemente più dell'80% della capacità fornita.

Capacità Burst è una funzionalità di Amazon Keyspaces che consente ai clienti di consumarne temporaneamente di più RCUs/WCUs rispetto a quanto originariamente previsto (più del throughput assegnato al secondo definito per la tabella). La capacità di espansione è stata creata per assorbire improvvisi aumenti di traffico dovuti a eventi speciali o picchi di utilizzo. Questa capacità di burst è limitata, per ulteriori informazioni, vedere Usa la capacità burst in modo efficace in Amazon Keyspaces. Non appena le RCU e le WCU inutilizzate si esauriscono, è possibile che si verifichino eventi di errore di throughput a bassa capacità se si tenta di consumare più capacità di quella assegnata. Quando il traffico delle applicazioni si avvicina al tasso di utilizzo dell'80%, il rischio di incorrere in eventi di errore di throughput a bassa capacità è notevolmente maggiore.

La regola del tasso di utilizzo dell'80% varia in base alla stagionalità dei dati e alla crescita del traffico. Considerare i seguenti scenari:

  • Se il traffico è rimasto stabile a un tasso di utilizzo di circa il 90% negli ultimi 12 mesi, la tabella ha la capacità corretta

  • Se il traffico delle applicazioni aumenta a un tasso dell'8% mensile in meno di 3 mesi, si arriverà al 100%

  • Se il traffico delle applicazioni aumenta a un tasso dell'5% mensile in meno di 4 mesi, si arriverà al 100%

I risultati delle query precedenti forniscono un'immagine del tasso di utilizzo. Utilizzali come guida per valutare ulteriormente altre metriche che possono aiutarti a scegliere di aumentare la capacità della tabella in base alle esigenze (ad esempio: un tasso di crescita mensile o settimanale). Collabora con il tuo team operativo per definire qual è una buona percentuale per il carico di lavoro e le tabelle.

Esistono scenari speciali in cui i dati sono distorti quando vengono analizzati su base giornaliera o settimanale. Ad esempio, con applicazioni stagionali che registrano picchi di utilizzo durante l'orario di lavoro (ma poi scendono quasi a zero al di fuori dell'orario di lavoro), potresti trarre vantaggio da pianificazione del ridimensionamento automatico delle applicazioni, in cui si specificano le ore del giorno (e i giorni della settimana) per aumentare la capacità messa a disposizione e quando ridurla. Invece di puntare a una maggiore capacità in modo da poter coprire le ore di punta, puoi anche beneficiare di Scalabilità automatica delle tabelle Amazon Keyspaces configurazioni se la stagionalità è meno pronunciata.

Come identificare le tabelle Amazon Keyspaces con sovra-provisioning

I risultati delle query ottenuti dagli script precedenti forniscono i dati necessari per eseguire alcune analisi iniziali. Se il set di dati presenta valori di utilizzo inferiori al 20% per diversi intervalli, è possibile che la tabella presenti un provisioning eccessivo. Per definire ulteriormente se è necessario ridurre il numero di WCU e RCU, è necessario riesaminare le altre letture negli intervalli.

Quando la tabella contiene diversi intervalli di utilizzo bassi, puoi trarre vantaggio dall'utilizzo delle politiche Application Auto Scaling, pianificando Application Auto Scaling o semplicemente configurando le politiche di Application Auto Scaling predefinite per la tabella basate sull'utilizzo.

Se si dispone di un carico di lavoro con un rapporto di utilizzo basso e accelerazione elevato (Massimo (ThrottleEvents) /Min (ThrottleEvents) nell'intervallo), ciò potrebbe verificarsi quando si ha un carico di lavoro molto intenso in cui il traffico aumenta in modo significativo in determinati giorni (o ore del giorno), ma per il resto è costantemente basso. In questi scenari, potrebbe essere utile utilizzare Application Auto Scaling pianificato.