xtstat serve a monitorare le attività interne di PBXT.

xtstat interroga la tabella INFORMATION_SCHEMA.PBXT_STATISTICS. L'intervallo tra le interrogazioni può essere impostato attraverso l'opzione --delay, il cui valore predefinito è 1 secondo.

Per la maggioranza delle statistiche, xtstat mostra la differenza tra il valore ricevuto con l'ultima interrogazione e il precedente. Per esempio, se i byte scritti sono 1000, e all'ultima interrogazione erano 800, allora xtstat mostra 200. Questo significa che nell'ultimo intervallo di tempo sono stati scritti su disco 200 byte.

Usare xtstat

xtstat si invoca come segue:

$ xtstat [ opzioni ]

Per esempio, per aggiornarlo ogni 10 secondi:

xtstat -D10

Si noti che i contatori delle statistiche non vengono mai azzerati, nemmeno se avviene un rollback. Per esempio, se un'istruzione UPDATE subisce un rollback, xtstat continuerà a indicare che un'istruzione UPDATE è stata eseguita (si veda stat-write, più sotto).

Se MariaDB si arresta o va in crash, xtstat cercherà di riconnettersi. xtstat può essere terminato con la combinazione di tasti CTRL-C.

Non tutte le statistiche sono disponibili, fino a quando PBXT non viene recuperato. In particolare, le statistiche relative ai thread in background di PBXT non sono disponibili (comprese sweep e chkpnt).

Opzioni da riga di comando

Le opzioni di xtstat sono le seguenti:

OpzioneSpiegazione
-?, --helpStampa l'help
-h, --host=valoreSi connette all'host specificato
-u, --user=valoreL'utente da usare per il login, se non è quello corrente
-p, --password[=valore]Password da usare per connettersi al server. Se non viene fornita, verrà chiesta da tty
-d, --database=valueDatabase da usare (pbxt o information_schema), il default è information_schema
-P, --port=valoreNumero di porta da usare
-S, --socket=valoreFile di socket per la connessione
-D, --delay=valoreRitardo in secondi fra le interrogazioni al database.
--protocol=valoreProtocollo di connessione da usare: default/tcp/socket/pipe/memory
--display=valoreColonne da mostrare: si usano i nomi abbreviati separati da | (il carattere pipe), corrispondenze parziali ammesse. Si può usare --display=all per mostrare tutte le colonne

Le opzioni di connessione possono anche essere prese dal file di configurazione di MySQL, se disponibile.

Unità di misura

I valori mostrati da xtstat possono essere in millisecondi, in byte oppure contatori. Se questi valori sono troppo grandi per essere visualizzati, il valore viene arrotondato e viene aggiunta un'unità di misura.

Le unità di misura usate sono le seguenti:

K:Kilobyte (1,024 bytes)
M:Megabyte (1,048,576 bytes)
G:Gigabyte (1,073,741,024 bytes)
T:Terabyte (1,099,511,627,776 bytes)
t:migliaia (1,000s)
m:milioni (1,000,000s)
b:miliardi (1,000,000,000s)

Statistiche

Segue un elenco di tutte le statistiche mostrate da xtstat. Ogni statistica ha un nome diviso in due parti. La prima è la categoria e la seconda è il tipo.

E' possibile scegliere i tipi e le categorie che verranno mostrate, se lo si desidera. Ad esempio, --display=read mostra tutte le attività di lettura, mentre --display=xact|stat mostra le transazioni e le istruzioni.

Si noti che per fini diagnostici è meglio catturare tutte le statistiche. Il motivo è che non si sa mai dove risiede il problema, perciò senza alcune statistiche si rischia di non poterlo individuare.

Display nameNameDescription
time-currCurrent TimeL'ora attuale in secondi
time-msecTime Since Last CallMillisecondi trascorsi dall'ultimo aggiornamento delle statistiche
xact-commtCommit CountNumero delle transazioni avviate
xact-rollbRollback CountNumero dei rollback delle transazioni
xact-waitsWait for Xact CountQuante volte una transazione ha dovuto attendere la fine di un'altra
xact-dirtyDirty Xact CountNumero di transazioni ancora da pulire. Include tutte le transazioni in esecuzione. Pulire significa che il thread Sweeper deve ancora scansire la transazione ed eliminare la "spazzatura" che essa ha lasciato. Un esempio di spazzatura sono le versioni delle righe che non sono più visibili da alcuna transazione.
stat-readRead StatementsNumero di istruzioni SELECT
stat-writeWrite StatementsNumero di istruzioni UPDATE/INSERT/DELETE
rec-inRecord Bytes ReadByte letti dai file dei dati
rec-outRecord Bytes WrittenByte scritti nei file. Questi dati vengono trasferiti dal log delle transazioni per gestire i file dei dati (xtd) e degli indici (xtr).
rec-syncs/msRecord File Flushes2 valori separati da un '/': il numero di flush dei file dei dati (.xtd) e degli indici (.xtr), e il tempo in millisecondi per eseguire queste operazioni.
rec-hitsRecord Cache HitsQuante volte è stata usata la cache dei record. Questa cache contiene i file dei dati (.xtd) e degli indici (.xtr).
rec-missRecord Cache MissesQuante volte non è stato possibile usare la cache dei record
rec-freesRecord Cache FreesNumero delle pagine della cache dei record liberate
rec-%useRecord Cache UsagePercentuale della cache dei record in uso. Questo valore è una percentuale della cache totale disponibile, ma il valore restituito dalla tabella PBXT_STATISTICS è espressoin byte
ind-inIndex Bytes ReadByte letti dai file degli indici
ind-outIndex Bytes WrittenByte scritti nei file degli indici. Questi dati vengono trasferiti dai log degli indici (ilog) ai file degli indici (xti), durante i flush degli indici
ind-syncs/msIndex File Flushes2 valori separati da un '/': il numero di flush dei file degli indici e il tempo in millisecondi impiegato per eseguirli
ind-hitsIndex Cache HitsQuante volte è stata usata la cache degli indici
ind-missIndex Cache MissesQuante volte non è stato possibile usare la cache degli indici
ind-%useIndex Cache UsagePercentuale della cache degli indici in uso. Questo valore è una percentuale della cache totale disponibile, ma il valore restituito dalla tabella PBXT_STATISTICS è in byte
ilog-inIndex Log Bytes InByte letti dai file di log degli indici
ilog-outIndex Log Bytes OutByte scritti nei file di log degli indici. Questi dati vengono trasferiti dalla cache degli indici nella memoria principale ai file di log degli indici (ilog) durante i flush degli indici.
ilog-syncs/msIndex Log File Syncs2 valori separati da un '/': il numero di flush dei file di log degli indici e il tempo in millisecondi impiegato per queste operazioni
xlog-inXact Log Bytes InByte letti dai file di log delle transazioni
xlog-outXact Log Bytes OutByte scritti nei file di log delle transazioni. Questi dati vengono trasferiti dal buffer del log delle transazioni (pbxt_transaction_buffer_size) ai file di log delle transazioni (.xlog). Questo trasferimento avviene con le commit o quando il buffer del log delle transazioni è pieno.
xlog-syncsXact Log File SyncsNumero di flush dei file di log delle transazioni
xlog-msecXact Log Sync TimeDurata in millisecondi dei flush dei file di log delle transazioni
xlog-hitsXact Log Cache HitsQuante volte è stata usata la cache dei log delle transazioni
xlog-missXact Log Cache MissesQuante volte non è stato possibile usare la cache dei log delle transazioni
xlog-%useXact Log Cache UsagePercentuale della cache dei log delle transazioni in uso. Questo valore è una percentuale del totale della cache disponibile, ma il valore restituito dalla tabella PBXT_STATISTICS è in byte
data-inData Log Bytes InByte letti dai file di log dei dati
data-outData Log Bytes OutByte scritti nei file di log dei dati. Questi dati vengono trasferiti dal buffer dei log dei dati (pbxt_log_buffer_size) ai file di log dei dati (.dlog) quando il buffer è pieno o quando avviene una commit.
data-syncsData Log File SyncsNumero di flush dei file di log dei dati
data-msecData Log Sync TimeDurata in millisecondi dei flush dei file di log dei dati
to-chkptBytes to CheckpointByte scritti nel log delle transazioni dall'ultimo checkpoint
to-writeLog Bytes to WriteByte scritti nel log delle transazioni, ancora da scrivere nel database
to-sweepLog Bytes to SweepByte scritti nel log delle transazioni, ancora da leggere dal thread Sweeper
sweep-waitsSweeper Wait on Xact  Tentativi di pulire una transazione
scan-indexIndex Scan CountNumero di scansioni degli indici
scan-tableTable Scan CountNumero di scansioni complete delle tabelle
row-selSelect Row CountNumero di righe selezionate
row-insInsert Row CountNumero di righe inserite
row-updUpdate Row CountNumero di righe modificate
row-delDelete Row CountNumero di righe eliminate

Ulteriori informazioni

Questa pagina è basata sulla documentazione di xtstat sul sito di PrimeBase.

La presentazione di Paul McCullagh alla User's Conference del 2010 contiene alcuni esempi d'uso: http://www.primebase.org/download/pbxt-uc-2010.pdf

Commenti

Sto caricando i commenti......