Tablet caldi
Per aiutarti a risolvere i problemi di prestazioni, Bigtable offre la possibilità di identificare e osservare i tablet caldi in un cluster. Questa pagina descrive i tablet caldi, spiega come ottenere un elenco di tablet caldi e illustra le situazioni in cui è utile identificarli. Prima di leggere questa pagina, dovresti leggere Panoramica di Bigtable.
Il nome del metodo che utilizzi per ottenere un elenco di tablet hot varia
a seconda della lingua utilizzata. Per semplicità, in questo documento il metodo è
a cui si fa riferimento con il nome dell'API RPC Cloud Bigtable Admin, ListHotTablets
. Riesci a ottenere un elenco
di tablet caldi utilizzando:
L'identificazione dei tablet con problemi può aiutarti a svolgere le seguenti attività:
- Identificare le chiavi di riga problematiche
- Osservazione degli hotspot con granularità a livello di minuto
- Identificare le tabelle problematiche all'interno di un cluster
Informazioni sui tablet caldi
Una tabella Bigtable viene partizionata orizzontalmente in blocchi di righe contigue, chiamate tablet, per consentire il bilanciamento del carico di lavoro delle query. Ogni tablet è associate a un nodo e le operazioni su queste righe vengono eseguite sul nodo. Per ottimizzare le prestazioni, i tablet vengono suddivisi o spostati in un altro nodo a seconda dei pattern di accesso. In base ai modelli di accesso degli utenti, ovvero operazioni di lettura, scrittura e scansione, i tablet vengono riequilibrati tra i nodi. Per informazioni dettagliate sul bilanciamento del carico, consulta In che modo Bigtable ottimizza i dati nel tempo.
Un tablet attivo è un tablet che presenta un sovrautilizzo della CPU del nodo perché utilizza una percentuale di CPU sproporzionatamente elevata rispetto agli altri tablet. Questo utilizzo sbilanciato dei nodi può causare latenza e replica ritardi.
Tra le cause più frequenti dei tablet caldi ci sono gli hotspot, che si verificano quando l'applicazione accede frequentemente alle righe vicine tra loro nella tabella. Gli hotspot sono spesso il risultato di un design dello schema non ottimizzato per distribuire i pattern di accesso della tua applicazione nella tabella. Per scoprire come progettare le chiavi di riga in modo da evitare gli hotspot, consulta le best practice per la progettazione dello schema.
Per ottenere un elenco di tablet caldi, devi disporre di un ruolo con l'autorizzazione
bigtable.viewer
.
Output
Il metodo ListHotTablets
restituisce i seguenti dati per un determinato cluster in un'istanza.
- Nome del tablet. L'ID univoco assegnato da Bigtable al tablet attivo. Questo campo non viene visualizzato da gcloud CLI.
- Table. L'ID della tabella associata al tablet caldo.
- Utilizzo della CPU. L'utilizzo medio della CPU del nodo associato il tablet caldo, espresso in percentuale, durante questo intervallo di un minuto. Questa percentuale è la media della somma di CPU in scrittura e in lettura da CPU dall'ora di inizio all'ora di fine.
- Ora di inizio. L'ora di inizio del periodo del tablet caldo.
- Ora di fine. L'ora di fine del periodo di tablet caldo.
- Chiave iniziale. La chiave della prima riga nel tablet caldo.
- Chiave finale. L'ultima chiave di riga nel tablet caldo. Il suffisso
\000
è viene aggiunto quando i tasti Start e Fine sono identici, a indicare che il tablet copre una singola riga.
Le chiavi sono ordinate in ordine alfabetico all'interno di un tablet, pertanto qualsiasi chiave tra la chiave di inizio e la chiave di fine è contenuta nel tablet attivo.
Gli hotspot vengono calcolati con una risoluzione di un minuto e un tablet potrebbe riapparire nell'output. In altre parole, un singolo tablet potrebbe essere considerato caldo per diversi minuti.
Per impostazione predefinita, ListHotTablets
esegue ricerche nelle ultime 24 ore. Per eseguire ricerche in un
intervallo di tempo specifico, specifica un'ora di inizio e un'ora di fine.
Il numero massimo di tablet hot restituiti è 50. Per modificare questa impostazione, specifica un formato di pagina.
Il metodo restituisce un elenco vuoto se nessuno dei tablet nel cluster è hot.
Esempio di utilizzo di gcloud CLI
Prima di copiare questo esempio,
installa l'interfaccia a riga di comando gcloud
.
Per visualizzare un elenco di tablet caldi per un determinato cluster, esegui il comando
hot-tablets list
in Cloud Shell o nella finestra del terminale locale.
gcloud bigtable hot-tablets list CLUSTER_ID --instance INSTANCE_ID
Sostituisci quanto segue:
CLUSTER_ID
: l'identificatore permanente per il clusterINSTANCE_ID
: l'identificatore permanente dell'istanza
Se i tablet del cluster sono caldi, il terminale mostra un output simile al seguente. I tablet utilizzati in un cluster sono elencati in ordine decrescente di utilizzo della CPU.
TABLE CPU_USAGE START_TIME END_TIME START_KEY END_KEY test-data 89.3 2021-12-14T01:19:57 00:00 2021-12-14T01:20:57 00:00 user29333893046… user29333893046… test-data 22.8 2021-12-14T01:04:59 00:00 2021-12-14T01:06:59 00:00 user29333893046… user29345657428… test-data 20.9 2021-12-14T01:18:56 00:00 2021-12-14T01:20:56 00:00 user54519105346… user545293 test-data 16.5 2021-12-14T01:18:56 00:00 2021-12-14T01:20:56 00:00 user49196524328… user49206
Casi d'uso per i dati di tablet caldi
L'identificazione di tablet hot in un cluster può aiutarti a risolvere i problemi relativi alle prestazioni
che le applicazioni presentino
problemi di prestazioni. Puoi utilizzare il metodo ListHotTablets
in combinazione con altri
strumenti di monitoraggio, come
Key Visualizer
strumento di diagnostica per Bigtable.
Identificazione delle chiavi di riga problematiche
Puoi utilizzare ListHotTablets
per identificare chiavi di riga e intervalli di righe specifici. In questo modo, è possibile monitorare i pattern di accesso che potrebbero causare hotspot.
Ad esempio, supponiamo che lo schema chiave di riga di una tabella
[user_id]#[event_timestamp]
, ID utente e timestamp separati da un hash
. L'elenco dei tablet più utilizzati può aiutarti a determinare se ID utente o timestamp degli eventi specifici stanno causando hotspot. Identificare i pattern di accesso
consente di eseguire ulteriori azioni, ad esempio riprogettare le chiavi di riga o le tabelle da distribuire
in modo più uniforme nello spazio delle chiavi. In questo esempio, se gli ID utente sono in aumento in modo monotono e causano hotspot per questo motivo, puoi assegnare gli ID utente in un ordine diverso o utilizzare gli identificatori universalmente univoci (UUID).
Quando la chiave di riga iniziale e quella finale sono uguali e la chiave di riga finale viene aggiunta con un suffisso \000
, viene creato un tablet con una sola riga. Quando il tablet riceve
una quantità di traffico sproporzionata, porta agli hotspot.
Rilevamento degli hotspot con granularità al minuto
Puoi utilizzare un elenco di tablet di tendenza in combinazione con le mappe termiche di Key Visualizer.
Sebbene Key Visualizer sia un buon strumento per osservare il quadro più ampio dei pattern di accesso allo spazio delle chiavi, ListHotTablets
offre una maggiore granularità.
Dopo aver esaminato le mappe di calore in Key Visualizer, puoi esplorare ulteriormente hotspot specifici. Poiché Key Visualizer viene eseguito per un periodo di settimane, i relativi dati per gli hotspot vengono aggregati in intervalli di 15 minuti. Inoltre, più tablet potrebbero essere combinati nello stesso spazio delle chiavi di Key Visualizer.
Dopo aver utilizzato Key Visualizer per identificare l'intervallo di tempo durante il quale gli hotspot
puoi eseguire ListHotTablets
per una maggiore granularità sia in termini di chiave
spazio temporale. Una maggiore granularità è particolarmente utile per
dell'utilizzo periodico.
ListHotTablets
è in grado di identificare gli hotspot di breve durata che Key Visualizer non è in grado di identificare.
Identificare le tabelle problematiche all'interno di un cluster
Poiché Key Visualizer opera a livello di tabella, non è sempre la scelta migliore per la risoluzione dei problemi in un cluster con più tabelle.
ListHotTablets
opera a livello di cluster, quindi puoi utilizzarlo per identificare
con un elevato utilizzo della CPU e restringere
il problema.
Passaggi successivi
- Informazioni sulle prestazioni di Bigtable.
- Scopri di più sul monitoraggio di Bigtable.
- Segui un tutorial sul benchmarking del rendimento.