Condividi tramite


Scalabilità automatica dinamica (scalabilità automatica per area e per partizione)

SI APPLICA A: NoSQL MongoDB Cassandra Gremlin Tabella

Per impostazione predefinita, la scalabilità automatica di Azure Cosmos DB ridimensiona i carichi di lavoro in base all'area e alla partizione più attive. Per i carichi di lavoro non univoci con modelli di carico di lavoro diversi tra aree e partizioni, questa scalabilità può causare scale-up non necessarie. Con questo miglioramento alla scalabilità automatica, nota anche come "ridimensionamento dinamico", la funzionalità di scalabilità automatica per area e per partizione consente ora alle aree e alle partizioni dei carichi di lavoro di ridimensionarsi in modo indipendente in base all'utilizzo.

Il ridimensionamento dinamico è consigliato per i carichi di lavoro di scalabilità automatica non univoci tra aree e partizioni. Questa funzionalità consente di risparmiare sui costi se si verificano spesso partizioni ad accesso frequente e/o con più aree. Se abilitato, il ridimensionamento dinamico si applica a tutte le risorse di scalabilità automatica nell'account.

Utilizzare casi

  • Carichi di lavoro del database con un'area primaria con traffico elevato e un'area passiva secondaria per il ripristino di emergenza.
    • Con il ridimensionamento dinamico, il raggiungimento della disponibilità elevata con più aree è più conveniente. L'area secondaria viene ridimensionata in modo indipendente e automatico durante l'inattività. L’area secondaria aumenta automaticamente anche quando diventa attiva e gestisce il traffico di replica di scrittura dall'area primaria.
  • Carichi di lavoro di database in più aree.
    • Questi carichi di lavoro spesso osservano una distribuzione irregolare delle richieste tra aree a causa della crescita del traffico naturale e delle riduzioni durante il giorno. Ad esempio, un database potrebbe essere attivo durante l'orario di ufficio in fusi orari distribuiti a livello globale.

Esempio

Ad esempio, se si dispone di una raccolta con 1000 UR/sec e 2 partizioni, ogni partizione può arrivare fino a 500 UR/sec. Per un'ora di attività, l'utilizzo sarà simile al seguente:

Area Partizione Velocità effettiva Utilizzo Note
Scrittura P1 <= 500 UR/sec 100% 500 UR/sec costituite da 50 UR/sec usate per le operazioni di scrittura e 450 UR/sec per le operazioni di lettura.
Scrittura P2 <= 200 UR/sec 40 % 200 UR/sec costituite da tutte le operazioni di lettura.
Lettura P1 <= 150 UR/sec 30% 150 UR/sec costituite da 50 UR/sec usate per le scritture replicate dall'area di scrittura. 100 UR/sec vengono usate per le operazioni di lettura in questa area.
Lettura P2 <= 50 UR/sec 10%

Poiché tutte le partizioni vengono ridimensionate in modo uniforme in base alla partizione più frequente, sia le aree di scrittura che di lettura vengono ridimensionate a 1000 UR/sec, rendendo il totale di UR/sec fino a 2000 UR/sec.

Con il ridimensionamento dinamico, è possibile ottimizzare la velocità effettiva. Il consumo totale sarà 900 UR/sec poiché la velocità effettiva di ogni partizione o area viene ridimensionata in modo indipendente e misurata all'ora usando lo stesso scenario.

Monitoraggio della scalabilità automatica dinamica

È possibile usare le metriche seguenti per monitorare la scalabilità automatica dinamica:

Nome misurazione Definizione Uso delle metriche
UR con scalabilità automatica Mostra la velocità effettiva con provisioning con dimensionamento dinamico a ogni livello di partizione e area solo per gli account abilitati per la scalabilità automatica dinamica. Usare questa metrica per vedere in che modo le partizioni in ogni area vengono ridimensionate in modo indipendente in base al relativo utilizzo.

Usare le metriche di Monitoraggio di Azure - Autoscaled RU per analizzare il modo in cui viene applicata la nuova scalabilità automatica tra partizioni e aree. Filtrare in base all'account e al contenitore di database desiderati, quindi filtrare o dividere in base alla metrica Physical PartitionID. Questa metrica mostra tutte le partizioni nelle varie aree.
Velocità effettiva con provisioning Mostra il numero di UR/sec aggregato più alto ridimensionato all'ora e rappresenta il totale di UR/sec ridimensionato per l'ora. È possibile usare la metrica Provisioned Throughput per visualizzare le UR/sec fatturate ogni ora. Con la scalabilità automatica dinamica, vengono fatturati i valori massimi di UR/sec aggregati ridimensionati ogni ora a ogni livello di partizione e area.
Consumo UR normalizzato Questa metrica rappresenta il rapporto tra UR/sec utilizzate e UR/sec di cui è stato effettuato il provisioning a ogni livello di partizione e area. Usare questa metrica per determinare se la velocità effettiva massima della scalabilità automatica è inferiore o sottoposta a over-provisioning.

Se il valore della metrica è costantemente 100% e l'applicazione visualizza la limitazione della velocità (codice errore 429), potrebbero essere necessarie più UR/sec. Al contrario, se questo valore della metrica è basso e non esiste alcuna limitazione della velocità, potrebbe esserci spazio per ottimizzare e ridurre le UR/sec. Informazioni su come interpretare ed eseguire il debug di errori di limitazione della frequenza del codice 429.

La metrica Normalized RU Consumption riflette le UR/sec usate nell'area secondaria a causa del traffico di replica di scrittura dal database primario, oltre a qualsiasi traffico di lettura sul database secondario.

Operazioni preliminari

Il ridimensionamento dinamico è abilitato per impostazione predefinita per tutti gli account Azure Cosmos DB creati dopo il 25 settembre 2024. I clienti che desiderano abilitare questa funzionalità per gli account meno recenti possono farlo a livello di codice tramite l'API Rest di Azure PowerShell/CLI o dal riquadro delle funzionalità di portale di Azure, come illustrato di seguito:

  1. Nel portale di Azure passare all'account Azure Cosmos DB.

  2. Passare alla pagina Funzionalità.

  3. Individuare e abilitare la funzionalità Scalabilità automatica dinamica (scalabilità automatica per area e per partizione).

    Screenshot della funzionalità

    Importante

    La funzionalità è abilitata a livello di account, quindi verrà applicata automaticamente a tutti i contenitori con scalabilità automatica e ai database con velocità effettiva condivisa all'interno dell'account. L'abilitazione di questa funzionalità non influisce sulle risorse nell'account che usano la velocità effettiva manuale. Per sfruttare il dimensionamento dinamico, le risorse manuali dovranno essere modificate per la scalabilità automatica. L'abilitazione di questa funzionalità non ha alcun impatto sul tempo di inattività o sulle prestazioni. Questa funzionalità non è applicabile per gli account serverless.