xtstat
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:
Opzione | Spiegazione |
---|---|
-?, --help | Stampa l'help |
-h, --host=valore | Si connette all'host specificato |
-u, --user=valore | L'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=value | Database da usare (pbxt o information_schema ), il default è information_schema |
-P, --port=valore | Numero di porta da usare |
-S, --socket=valore | File di socket per la connessione |
-D, --delay=valore | Ritardo in secondi fra le interrogazioni al database. |
--protocol=valore | Protocollo di connessione da usare: default/tcp/socket/pipe/memory |
--display=valore | Colonne 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 name | Name | Description |
---|---|---|
time-curr | Current Time | L'ora attuale in secondi |
time-msec | Time Since Last Call | Millisecondi trascorsi dall'ultimo aggiornamento delle statistiche |
xact-commt | Commit Count | Numero delle transazioni avviate |
xact-rollb | Rollback Count | Numero dei rollback delle transazioni |
xact-waits | Wait for Xact Count | Quante volte una transazione ha dovuto attendere la fine di un'altra |
xact-dirty | Dirty Xact Count | Numero 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-read | Read Statements | Numero di istruzioni SELECT |
stat-write | Write Statements | Numero di istruzioni UPDATE/INSERT/DELETE |
rec-in | Record Bytes Read | Byte letti dai file dei dati |
rec-out | Record Bytes Written | Byte scritti nei file. Questi dati vengono trasferiti dal log delle transazioni per gestire i file dei dati (xtd) e degli indici (xtr). |
rec-syncs/ms | Record File Flushes | 2 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-hits | Record Cache Hits | Quante volte è stata usata la cache dei record. Questa cache contiene i file dei dati (.xtd) e degli indici (.xtr). |
rec-miss | Record Cache Misses | Quante volte non è stato possibile usare la cache dei record |
rec-frees | Record Cache Frees | Numero delle pagine della cache dei record liberate |
rec-%use | Record Cache Usage | Percentuale 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-in | Index Bytes Read | Byte letti dai file degli indici |
ind-out | Index Bytes Written | Byte 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/ms | Index File Flushes | 2 valori separati da un '/': il numero di flush dei file degli indici e il tempo in millisecondi impiegato per eseguirli |
ind-hits | Index Cache Hits | Quante volte è stata usata la cache degli indici |
ind-miss | Index Cache Misses | Quante volte non è stato possibile usare la cache degli indici |
ind-%use | Index Cache Usage | Percentuale 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-in | Index Log Bytes In | Byte letti dai file di log degli indici |
ilog-out | Index Log Bytes Out | Byte 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/ms | Index Log File Syncs | 2 valori separati da un '/': il numero di flush dei file di log degli indici e il tempo in millisecondi impiegato per queste operazioni |
xlog-in | Xact Log Bytes In | Byte letti dai file di log delle transazioni |
xlog-out | Xact Log Bytes Out | Byte 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-syncs | Xact Log File Syncs | Numero di flush dei file di log delle transazioni |
xlog-msec | Xact Log Sync Time | Durata in millisecondi dei flush dei file di log delle transazioni |
xlog-hits | Xact Log Cache Hits | Quante volte è stata usata la cache dei log delle transazioni |
xlog-miss | Xact Log Cache Misses | Quante volte non è stato possibile usare la cache dei log delle transazioni |
xlog-%use | Xact Log Cache Usage | Percentuale 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-in | Data Log Bytes In | Byte letti dai file di log dei dati |
data-out | Data Log Bytes Out | Byte 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-syncs | Data Log File Syncs | Numero di flush dei file di log dei dati |
data-msec | Data Log Sync Time | Durata in millisecondi dei flush dei file di log dei dati |
to-chkpt | Bytes to Checkpoint | Byte scritti nel log delle transazioni dall'ultimo checkpoint |
to-write | Log Bytes to Write | Byte scritti nel log delle transazioni, ancora da scrivere nel database |
to-sweep | Log Bytes to Sweep | Byte scritti nel log delle transazioni, ancora da leggere dal thread Sweeper |
sweep-waits | Sweeper Wait on Xact | Tentativi di pulire una transazione |
scan-index | Index Scan Count | Numero di scansioni degli indici |
scan-table | Table Scan Count | Numero di scansioni complete delle tabelle |
row-sel | Select Row Count | Numero di righe selezionate |
row-ins | Insert Row Count | Numero di righe inserite |
row-upd | Update Row Count | Numero di righe modificate |
row-del | Delete Row Count | Numero 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