Tablet attivi
Per aiutarti a risolvere i problemi di prestazioni, Bigtable offre la possibilità di identificare e osservare le tablet calde in un cluster. Questa pagina descrive i tablet caldi, spiega come ottenere un elenco di tablet caldi e illustra le situazioni in cui l'identificazione dei tablet caldi è utile. Prima di leggere questa pagina, devi leggere la panoramica di Bigtable.
Il nome del metodo che utilizzi per ottenere un elenco di tablet caldi varia
a seconda della lingua utilizzata. Per semplicità, in questo documento il metodo viene indicato con il nome dell'API RPC Cloud Bigtable Admin, ListHotTablets
. Puoi ottenere un elenco
dei tablet più richiesti utilizzando:
L'identificazione dei tablet surriscaldati può aiutarti con le seguenti attività:
- Identificare le chiavi di riga problematiche
- Osservare gli hotspot con una granularità a livello di minuti
- Identificare le tabelle problematiche all'interno di un cluster
Informazioni sui tablet attivi
Una tabella Bigtable viene partizionata orizzontalmente in blocchi di righe contigue, denominati tablet, per consentire il bilanciamento del carico di lavoro delle query. Ogni tablet è associato a un nodo e le operazioni su queste righe vengono eseguite sul nodo. Per ottimizzare il rendimento, i tablet vengono suddivisi o spostati in un nodo diverso a seconda dei pattern di accesso. In base ai modelli di accesso degli utenti (operazioni di lettura, scrittura e scansione), le tabelle vengono ribilanciate tra i nodi. Per informazioni dettagliate sul bilanciamento del carico, vedi Come Bigtable ottimizza i dati nel tempo.
Un tablet caldo è un tablet che mostra un utilizzo eccessivo della CPU del nodo perché utilizza una percentuale di CPU sproporzionatamente elevata rispetto ad altri tablet. Questo utilizzo sbilanciato dei nodi può causare latenza e ritardi nella replica.
Tra le cause più frequenti di surriscaldamento dei tablet ci sono gli hotspot, che si verificano quando l'applicazione accede spesso a righe vicine tra loro nella tabella. Gli hotspot sono spesso il risultato di una progettazione dello schema non ottimizzata per distribuire i pattern di accesso dell'applicazione nella tabella. Per scoprire come progettare le chiavi di riga in modo che non si verifichino hotspot, consulta Best practice per la progettazione degli schemi.
Per ottenere un elenco dei 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 alla tabella calda. Questo campo non viene visualizzato da gcloud CLI.
- Tabella. L'ID della tabella associata al tablet caldo.
- Utilizzo della CPU. L'utilizzo medio della CPU del nodo associato al tablet caldo, espresso in percentuale, durante l'intervallo di un minuto. Questa percentuale è la media della somma di CPU scrittura e CPU lettura dall'ora di inizio all'ora di fine.
- Ora di inizio. L'ora di inizio del periodo di tablet caldo.
- Ora di fine. L'ora di fine del periodo di forte interesse per il tablet.
- Chiave iniziale. La prima chiave di riga nella tabella calda.
- Chiave finale. L'ultima chiave di riga nella tabella calda. Quando la chiave iniziale e quella finale sono uguali, viene aggiunto un suffisso
\000
, che indica che la tabella si estende su una sola riga.
Le chiavi sono ordinate lessicograficamente all'interno di una tabella, quindi qualsiasi chiave compresa tra la chiave iniziale e quella finale è contenuta in quella tabella.
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 più minuti.
Per impostazione predefinita, ListHotTablets
esegue ricerche nelle ultime 24 ore. Per eseguire la ricerca in un
intervallo di tempo specifico, fornisci un'ora di inizio e un'ora di fine.
Il numero massimo di compresse calde restituite è 50. Per modificarlo, fornisci una dimensione della pagina.
Il metodo restituisce un elenco vuoto se nessuno dei tablet nel cluster è caldo.
Esempio di utilizzo di gcloud CLI
Prima di copiare questo esempio, installa l'gcloud
CLI.
Per visualizzare un elenco di tabelle attive 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 del clusterINSTANCE_ID
: l'identificatore permanente dell'istanza
Se uno dei tablet nel cluster è caldo, il terminale mostra un output simile al seguente. I tablet che causano un hotspot 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 dei tablet hot
L'identificazione dei tablet surriscaldati in un cluster può aiutarti a risolvere i problemi di rendimento. Puoi utilizzare il metodo ListHotTablets
in combinazione con altri strumenti di monitoraggio, ad esempio lo strumento di diagnostica Key Visualizer per Bigtable.
Identificare le chiavi di riga problematiche
Puoi utilizzare ListHotTablets
per identificare chiavi di riga e intervalli di righe specifici. In questo modo
puoi osservare i pattern di accesso che potrebbero causare hotspot.
Ad esempio, supponiamo che lo schema della chiave di riga di una tabella sia
[user_id]#[event_timestamp]
, ID utente e timestamp separati da un simbolo
hash. Ottenere un elenco di tablet con problemi di surriscaldamento può aiutarti a determinare se ID utente o timestamp evento specifici causano hotspot. L'identificazione dei pattern di accesso
ti consente di intraprendere ulteriori azioni, come riprogettare le chiavi di riga o le tabelle per distribuire
l'utilizzo in modo più uniforme nello spazio delle chiavi. In questo esempio, se gli ID utente aumentano in modo monotono e causano hotspot per questo motivo, potresti assegnare gli ID utente in un ordine diverso o utilizzare invece UUID (Universally Unique Identifier).
Quando la chiave di riga iniziale e finale sono uguali e alla chiave di riga finale viene aggiunto
un suffisso \000
, viene creato un tablet a una sola riga. Quando questo tablet riceve
una quantità di traffico sproporzionatamente elevata, si creano hotspot.
Osservare gli hotspot con una granularità a livello di minuto
Puoi utilizzare un elenco di tablet attivi in combinazione con le mappe termiche di Key Visualizer.
Key Visualizer è uno strumento utile per osservare il quadro generale dei pattern di accesso allo spazio delle chiavi, ma ListHotTablets
offre una granularità maggiore.
Dopo aver esaminato le mappe termiche in Key Visualizer, puoi esplorare ulteriormente punti specifici. Poiché Key Visualizer viene eseguito per un periodo di settimane, i dati per gli hotspot vengono aggregati a 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 in cui si sono verificati gli hotspot, puoi eseguire ListHotTablets
per una maggiore granularità sia nello spazio delle chiavi che in quello temporale. Una maggiore granularità è particolarmente utile per l'utilizzo periodico.
ListHotTablets
può identificare hotspot di breve durata che KeyVisualizer non può.
Identificare le tabelle problematiche all'interno di un cluster
Poiché Key Visualizer opera a livello di tabella, non è sempre la scelta migliore per risolvere un problema in un cluster con più tabelle.
ListHotTablets
opera a livello di cluster, quindi puoi utilizzarlo per identificare
le tabelle con un utilizzo elevato della CPU e restringere il problema.
Passaggi successivi
- Informazioni sul rendimento di Bigtable.
- Scopri di più sul monitoraggio di Bigtable.
- Segui un tutorial sul benchmarking del rendimento.