EnglezăFrancezăSpaniolă

Ad


Favicon OnWorks

innotop - Online în cloud

Rulați innotop în furnizorul de găzduire gratuit OnWorks prin Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

Aceasta este comanda innotop care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS

PROGRAM:

NUME


innotop - MySQL și InnoDB monitorizare de stare/ tranzacție.

REZUMAT


Pentru a monitoriza serverele în mod normal:

innotop

Pentru a monitoriza informațiile de stare InnoDB dintr-un fișier:

innotop /var/log/mysql/mysqld.err

Pentru a rula innotop în mod non-interactiv într-o configurație pipe-and-filter:

innotop --count 5 -d 1 -n

Pentru a monitoriza o bază de date pe alt sistem utilizând un anumit nume de utilizator și o parolă:

innotop -u -p -h

DESCRIERE


innotop monitorizează serverele MySQL. Fiecare dintre modurile sale vă arată un aspect diferit al ceea ce este
care se întâmplă pe server. De exemplu, există un mod pentru replicarea de monitorizare, unul pentru
interogări și una pentru tranzacții. innotop își reîmprospătează datele periodic, astfel încât să vedeți un
vizualizare de actualizare.

innotop are o mulțime de funcții pentru utilizatorii cu putere, dar îl puteți porni și rula virtual
nicio configuratie. Dacă abia ați început, consultați „START-UL RAPID”. Presa '?' la orice
timp în timp ce rulați innotop pentru ajutor sensibil la context.

PORNIRE RAPIDĂ


Pentru a porni innotop, deschideți un terminal sau un prompt de comandă. Dacă ați instalat innotop pe
sistemul dvs., ar trebui să puteți doar să tastați „innotop” și să apăsați Enter; altfel, tu
va trebui să se schimbe în directorul innotop și să tastați „perl innotop”.

Fără opțiuni specificate, innotop va încerca să se conecteze la un server MySQL pe localhost
folosind mysql_read_default_group=client pentru alți parametri de conexiune. Dacă ai nevoie să
specificați un nume de utilizator și o parolă diferite, utilizați opțiunile -u și respectiv -p. La
monitorizați o bază de date MySQL pe o altă gazdă, utilizați opțiunea -h.

După ce v-ați conectat, innotop ar trebui să vă arate ceva de genul următor:

[RO] Lista de interogări (? pentru ajutor) localhost, 01:11:19, 449.44 QPS, 14/7/163 con/run

CXN Când se încarcă QPS Slow QCacheHit KCacheHit BpsIn BpsOut
localhost Total 0.00 1.07k 697 0.00% 98.17% 476.83k 242.83k

CXN Cmd ID User Host DB Time Interogare
localhost Interogare 766446598 test 10.0.0.1 foo 00:02 INSERT INTO table (

(Acest eșantion este trunchiat la dreapta, astfel încât să se potrivească pe un terminal atunci când rulează „man
innotop')

Dacă serverul dvs. este ocupat, veți vedea mai multe rezultate. Observați prima linie de pe ecran,
care vă spune că readonly este setat la true ([RO]), în ce mod vă aflați și pe ce server
la care ești conectat. Puteți trece la alte moduri cu apăsarea tastei; apăsați „T” pentru a comuta
la o listă de tranzacții InnoDB, de exemplu.

Apasă pe '?' pentru a vedea ce taste sunt active în modul curent. Puteți apăsa pe oricare dintre
aceste taste și innotop fie vor efectua acțiunea solicitată, fie vă vor solicita mai multe introduceri.
Dacă sistemul dvs. are suport Term::ReadLine, puteți utiliza TAB și alte taste pentru a completa automat
și editați intrarea.

Pentru a părăsi innotop, apăsați tasta „q”.

OPŢIUNI


innotop este configurat în mare parte prin fișierul său de configurare, dar o parte din configurație
opțiunile pot veni din linia de comandă. De asemenea, puteți specifica un fișier de monitorizat pentru InnoDB
ieșire de stare; consultați „MONITORAREA UNUI FIȘIER” pentru mai multe detalii.

Puteți anula unele opțiuni prefixând numele opțiunii cu --no. De exemplu, --noinc
(sau --no-inc) neagă „--inc”.

--culoare
Activați sau dezactivați colorarea terminalului. Corespunde cu setarea fișierului de configurare „culoare”.

--config
Specifică un fișier de configurare de citit. Această opțiune nu este lipicioasă, adică
nu persistă în fișierul de configurare în sine.

--numara
Actualizează doar numărul specificat de ori (bifări) înainte de a ieși. Fiecare reîmprospătare este a
pauză pentru „interval” secunde, urmată de solicitarea datelor de la conexiunile MySQL și
imprimându-l pe terminal.

--întârziere
Specifică perioada de pauză între bifări (reîmprospătare). Corespunde la
opțiunea de configurare „interval”.

--Ajutor
Imprimați un rezumat al utilizării liniei de comandă și ieșiți.

--gazdă
Gazdă la care să te conectezi.

--inc
Specifică dacă innotop ar trebui să afișeze numere absolute sau numere relative (decalaje
din valorile lor anterioare). Corespunde opțiunii de configurare „status_inc”.

--mod
Specifică modul în care ar trebui să pornească innotop. Corespunde configuratiei
opțiunea „mod”.

--nonint
Activați operarea non-interactivă. Consultați „OPERAȚIUNEA NON-INTERACTIVĂ” pentru mai multe.

--parola
Parola de folosit pentru conectare.

--port
Port de utilizat pentru conectare.

--skipcentral
Nu citiți fișierul central de configurare.

--utilizator
Utilizator de utilizat pentru conectare.

--versiune
Ieșiți informații despre versiune și ieșiți.

--scrie
Setează opțiunea de configurare „readonly” la 0, făcând ca innotop să scrie rularea
configurarea la ~/.innotop/innotop.conf la ieșire, dacă nu a fost încărcat niciun fișier de configurare
la pornire.

HOTKES


innotop este interactiv și îl controlați prin apăsarea tastelor.

· Tastele majuscule comută între moduri.

· Tastele cu litere mici inițiază anumite acțiuni în modul curent.

· Alte chei fac ceva special, cum ar fi modificarea configurației sau afișarea licenței innotop.

Presa '?' în orice moment pentru a vedea cheile active în prezent și ceea ce fac acestea.

MODURI


Fiecare dintre modurile innotop preia și afișează un anumit tip de date de pe servere
tu monitorizezi. Comutați între moduri cu tastele majuscule. Următorul este a
o scurtă descriere a fiecărui mod, în ordine alfabetică. Pentru a comuta la modul, apăsați tasta
cheie listată în fața titlului din următoarea listă:

B: tampon InnoDB
Acest mod afișează informații despre pool-ul de buffer InnoDB, statisticile paginii, inserarea
tampon și index hash adaptiv. Datele provin de la SHOW INNODB STATUS.

Acest mod conține „buffer_pool”, „page_statistics”, „insert_buffers” și
tabelele „adaptative_hash_index” în mod implicit.

C: Rezumatul comenzii
Acest mod este similar cu modul Rezumat comenzi de la mytop. Afișează „cmd_summary”
tabel, care arată cam așa:

Rezumatul comenzii (? pentru ajutor) localhost, 25+07:16:43, 2.45 QPS, a treia, 3
_____________________ Rezumatul comenzii _____________________
Nume Valoare Buc Ultimul Incr Buc
Select_scan 3244858 69.89% 2 100.00%
Select_range 1354177 29.17% 0 0.00%
Select_full_join 39479 0.85% 0 0.00%
Select_full_range_join 4097 0.09% 0 0.00%
Select_range_check 0 0.00% 0 0.00%

Tabelul rezumat al comenzii este construit prin extragerea variabilelor din „STATUS_VARIABLES”.
Variabilele trebuie să fie numerice și trebuie să se potrivească cu prefixul dat de „cmd_filter”
variabila de configurare. Variabilele sunt apoi sortate după valoare descendentă și
comparativ cu ultima variabilă, așa cum se arată mai sus. Coloanele procentuale sunt procente
din totalul tuturor variabilelor din tabel, astfel încât să puteți vedea ponderea relativă a
variabile.

Exemplul arată ce vedeți dacă prefixul este „Select_”. Prefixul implicit este
„Com_”. Puteți alege un prefix cu tasta „s”.

Este mai degrabă ca și cum rulați SHOW VARIABLES LIKE „prefix%” cu memorie și frumos
formatare.

Valorile sunt agregate pe toate serverele. Coloanele Pct nu sunt corecte
agregate pe mai multe servere. Aceasta este o limitare cunoscută a grupării
algoritm care poate fi remediat în viitor.

D: Blocaje InnoDB
Acest mod arată tranzacțiile implicate în ultimul blocaj InnoDB. Un al doilea tabel
arată încuietorile pentru fiecare tranzacție deținută și așteptată. Un impas este cauzat de un ciclu
în graficul de așteptare, deci ar trebui să fie două încuietori ținute și unul așteptat, cu excepția cazului
informația de blocare este trunchiată.

InnoDB pune informațiile de blocare înaintea altor informații în SHOW INNODB
Ieșire STATUS. Dacă există o mulțime de blocări, informațiile de blocare pot crește foarte mult
mare și există o limită pentru dimensiunea ieșirii SHOW INNODB STATUS. O mare
Blocajul poate umple întreaga ieșire sau chiar poate fi trunchiat și vă poate împiedica să vedeți
alte informatii deloc. Dacă rulați innotop în alt mod, de exemplu T
modul și dintr-o dată nu vedeți nimic, poate doriți să verificați și să vedeți dacă a
blocajul a șters datele de care aveți nevoie.

Dacă da, puteți crea un mic blocaj pentru a-l înlocui pe cel mare. Folosiți tasta „w”.
pentru a „șterge” blocajul mare cu unul mic. Acest lucru nu va funcționa decât dacă aveți
a definit un tabel de blocaj pentru conexiune (vezi „CONEXIUNI LA ​​SERVER”).

De asemenea, puteți configura innotop pentru a detecta automat când este nevoie de un blocaj mare
fi înlocuit cu unul mic (vezi „auto_wipe_dl”).

Acest mod afișează implicit tabelele „deadlock_transactions” și „deadlock_locks”.

F: Erori de cheie străină InnoDB
Acest mod arată ultimele informații despre eroarea cheii externe InnoDB, cum ar fi tabelul în care
s-a întâmplat, când și cine și ce interogare a provocat-o și așa mai departe.

InnoDB are o mare varietate de mesaje de eroare cu cheie străină, iar multe dintre ele sunt doar
greu de analizat. innotop nu face întotdeauna cea mai bună treabă aici, dar există atât de mult cod
dedicat analizării acestei rezultate dezordonate, de neanalizat, care probabil că innotop nu va fi niciodată
perfect in acest sens. Dacă innotop nu vă arată ce trebuie să vedeți, uitați-vă
direct la textul de stare.

Acest mod afișează implicit tabelul „fk_error”.

I: InnoDB I/O Info
Acest mod arată statisticile I/O ale InnoDB, inclusiv firele I/O, I/O în așteptare, fișier
I/O diverse și statistici de jurnal. Afișează „io_threads”, „pending_io”,
tabelele „file_io_misc” și „log_statistics” în mod implicit.

L: Încuietori
Acest mod afișează informații despre încuietorile curente. În momentul de față sunt doar încuietori InnoDB
acceptat și, în mod implicit, veți vedea numai încuietori pentru care tranzacțiile sunt în așteptare.
Aceste informații provin din secțiunea TRANZACȚII din textul de stare InnoDB. Dacă
aveți un server foarte ocupat, este posibil să aveți așteptări frecvente de blocare; ajută să poți
vezi ce tabele și indici sunt „punctul fierbinte” pentru încuietori. Dacă serverul tău rulează
destul de bine, acest mod nu ar trebui să arate nimic.

Puteți configura MySQL și innotop pentru a monitoriza nu numai blocările pentru care o tranzacție
așteaptă, dar și cei deținuți în prezent. Puteți face acest lucru cu InnoDB Lock
Monitor (http://dev.mysql.com/doc/en/innodb-monitor.html>). Nu este documentat în
manualul MySQL, dar creând și monitorul de blocare cu următoarea instrucțiune
afectează rezultatul SHOW INNODB STATUS, pe care innotop îl folosește:

CREATE TABLE innodb_lock_monitor(a int) ENGINE=INNODB;

Acest lucru face ca InnoDB să-și imprime rezultatul în fișierul MySQL la fiecare 16 secunde sau cam asa ceva
este menționat în manual, dar include și ieșirea normală SHOW INNODB STATUS
informații de blocare, pe care innotop le poate analiza și afișa (acesta este cel nedocumentat
caracteristică).

Aceasta înseamnă că puteți face ceea ce poate părea imposibil: într-o măsură limitată (InnoDB
trunchiază unele informații din ieșire), puteți vedea ce tranzacție deține
încuietori altceva așteaptă. De asemenea, puteți activa și dezactiva Blocarea InnoDB
Monitorizați cu mapările cheilor în acest mod.

Acest mod afișează implicit tabelul „innodb_locks”. Iată o mostră de ecran
când o conexiune așteaptă blocări, o altă conexiune reține:

_________________________________ Blocări InnoDB __________________________
Tip ID CXN În așteptare Așteptare Mod activ Index tabel DB
localhost 12 RECORD 1 00:10 00:10 X test t1 PRIMARY
localhost 12 TABEL 0 00:10 00:10 IX test t1
localhost 12 RECORD 1 00:10 00:10 X test t1 PRIMARY
localhost 11 TABEL 0 00:00 00:25 IX test t1
localhost 11 RECORD 0 00:00 00:25 X test t1 PRIMARY

Puteți vedea că prima conexiune, ID 12, așteaptă o blocare a tastei PRIMARY pornită
test.t1 și a așteptat timp de 10 secunde. A doua conexiune nu așteaptă,
deoarece coloana În așteptare este 0, dar deține încuietori pe același index. Asta iti spune
conexiunea 11 blochează conexiunea 12.

M: Starea de replicare master/slave
Acest mod arată ieșirea SHOW SLAVE STATUS și SHOW MASTER STATUS în trei
Mese. Primele două împart starea slave în starea firului SQL și I/O și
ultimul arată starea de master. Se aplică filtre pentru a elimina serverele non-slave din
tabelele slave și serverele non-master din tabelul master.

Acest mod afișează „slave_sql_status”, „slave_io_status” și „master_status”
tabele în mod implicit.

O: Mesele deschise
Această secțiune provine din comanda MySQL SHOW OPEN TABLES. Implicit este filtrat
pentru a afișa tabelele care sunt utilizate de una sau mai multe interogări, astfel încât să puteți vedea rapid
care mese sunt „fierbinți”. Puteți folosi acest lucru pentru a ghici ce mese ar putea fi blocate
implicit.

Acest mod afișează modul „open_tables” în mod implicit.

Î: Lista de interogări
Acest mod afișează rezultatul din SHOW FULL PROCESSLIST, la fel ca topul meulista de interogări a lui
modul. Acest mod o face nu afișați informații legate de InnoDB. Acesta este probabil unul dintre
cele mai utile moduri pentru uz general.

Există un antet informativ care arată informații generale despre starea dvs
Server. Îl puteți activa și dezactiva cu tasta „h”. În mod implicit, innotop se ascunde
procesele inactive și propriul proces. Le puteți activa și dezactiva cu „i”
și tastele „a”.

Puteți EXPLICA o interogare din acest mod cu tasta „e”. Aceasta afișează interogarea
textul integral, rezultatele EXPLAIN și în versiunile mai noi MySQL, chiar și cele optimizate
interogare rezultată din EXPLAIN EXTENDED. innotop încearcă, de asemenea, să rescrie anumite interogări
pentru a le face EXPLICABILE. De exemplu, instrucțiunile INSERT/SELECT sunt reinscriptibile.

Acest mod afișează implicit tabelele „q_header” și „processlist”.

R: InnoDB Row Operations și Semafores
Acest mod arată operațiunile de rând InnoDB, operațiunile de rând diverse, semaforele și
informații din matricea de așteptare. Afișează „row_operations”,
Tabelele „row_operation_misc”, „semafore” și „wait_array” în mod implicit.

S: Variabile și stare
Acest mod calculează statistici, cum ar fi interogări pe secundă, și le imprimă în
mai multe stiluri diferite. Puteți afișa valori absolute sau valori incrementale între
căpușe.

Puteți comuta între vizualizări apăsând o tastă. Tasta „s” tipărește o singură linie
de fiecare dată când ecranul se actualizează, în stilul vmstat. Tasta „g” schimbă vizualizarea în
un grafic cu aceleași numere, un fel de asemănător tload. Tasta „v” schimbă vizualizarea în a
tabel pivotant cu nume de variabile din stânga, cu actualizări succesive derulând
ecranul de la stânga la dreapta. Puteți alege câte actualizări să puneți pe ecran
cu variabila de configurare „num_status_sets”.

Anteturile pot fi prescurtate pentru a se potrivi pe ecran în operațiunea interactivă. Tu alegi
ce variabile să fie afișate cu tasta „c”, care selectează din seturi predefinite sau
vă permite să vă creați propriile seturi. Puteți edita setul curent cu tasta „e”.

Acest mod nu afișează cu adevărat niciun tabel ca alte moduri. În schimb, folosește a
definiția tabelului pentru a extrage și a formata datele, dar apoi transformă rezultatul în
moduri speciale înainte de a-l scoate. Utilizează definiția tabelului „var_status” pentru
acest.

T: Tranzacții InnoDB
Acest mod arată tranzacțiile de la ieșirea monitorului InnoDB, în top-format asemănător.
Acest mod este motivul pentru care am scris innotop.

Puteți elimina interogări sau procese cu tastele „k” și „x” și EXPLICAți o interogare cu
tastele „e” sau „f”. InnoDB nu tipărește interogarea completă în tranzacții, deci
explicarea poate să nu funcționeze corect dacă interogarea este trunchiată.

Antetul informațional poate fi activat și dezactivat cu tasta „h”. În mod implicit,
innotop ascunde tranzacțiile inactive și propria tranzacție. Puteți activa acest lucru
și opriți cu tastele „i” și „a”.

Acest mod afișează implicit tabelele „t_header” și „innodb_transactions”.

INNOTOP STAREA


Prima linie afișată innotop este un fel de „bară de stare”. De ce contine depinde
modul în care vă aflați și ce servere monitorizați. Primele cuvinte sunt întotdeauna
[RO] (dacă readonly este setat la 1), modul innotop, cum ar fi „InnoDB Txns” pentru modul T,
urmat de un memento să apăsați „?” pentru ajutor în orice moment.

ONE SERVER
Cel mai simplu caz este atunci când monitorizați un singur server. În acest caz, numele de
conexiunea este următoarea pe linia de stare. Acesta este numele pe care l-ați dat când ați creat
conexiune -- cel mai probabil numele de gazdă al serverului MySQL. Acesta este urmat de cel al serverului
timpul de funcționare.

Dacă vă aflați într-un mod InnoDB, cum ar fi T sau B, următorul cuvânt este „InnoDB” urmat de unele
informații despre ieșirea SHOW INNODB STATUS utilizată pentru a reda ecranul. Primul cuvânt
este numărul de secunde de la ultimul SHOW INNODB STATUS, pe care InnoDB îl folosește pentru a calcula
unele statistici pe secundă. Următorul este o față zâmbitoare care indică dacă InnoDB
ieșirea este trunchiată. Dacă fața zâmbitoare este un :-), totul este bine; nu există trunchiere. A
:^| înseamnă că lista de tranzacții este atât de lungă, încât InnoDB a tipărit doar câteva dintre ele
tranzactii. În cele din urmă, o încruntare :-( înseamnă că rezultatul este incomplet, ceea ce se datorează probabil
la un blocaj care imprimă prea multe informații de blocare (consultați „D: Blocaje InnoDB”).

Următoarele două cuvinte indică interogările serverului pe secundă (QPS) și câte fire
(legături) există. În cele din urmă, numărul versiunii serverului este ultimul lucru pe linie.

MULTIPLU SERVERE
Dacă monitorizați mai multe servere (consultați „CONEXIUNI LA ​​SERVER”), linia de stare o face
nu afișează detalii despre serverele individuale. În schimb, arată numele
conexiuni care sunt active. Din nou, acestea sunt numele conexiunilor pe care le-ați specificat, care sunt
probabil să fie numele de gazdă al serverului. O conexiune care are o eroare este prefixată cu un
semn de exclamare.

Dacă monitorizați un grup de servere (consultați „GRUPURI DE SERVER”), linia de stare arată
numele grupului. Dacă orice conexiune din grup are o eroare, numele grupului este
urmat de fracțiunea conexiunilor care nu au erori.

Consultați „GESTIUNEA ERORILOR” pentru mai multe detalii despre gestionarea erorilor de către innotop.

MONITORIZAREA A FILE
Dacă dați un nume de fișier pe linia de comandă, innotop nu se va conecta la NICIUN server la
toate. Acesta va urmări fișierul specificat pentru ieșirea de stare InnoDB și îl va folosi ca date
sursă. Va afișa întotdeauna o singură conexiune numită „fișier”. Și din moment ce nu se poate
conectați-vă la un server, nu poate determina cât timp a fost activat serverul pe care îl monitorizează;
deci calculează timpul de funcționare al serverului ca timp de când innotop a început să ruleze.

SERVER ADMINISTRARE


În timp ce innotop este în primul rând un monitor care vă permite să urmăriți și să analizați serverele dvs., poate
de asemenea, trimite comenzi către servere. Cele mai frecvente comenzi utile sunt interogările de ucidere
și oprirea sau pornirea sclavilor.

Puteți opri o conexiune sau, în versiunile mai noi de MySQL, puteți elimina o interogare, dar nu o
conexiune, din modurile „Q: Query List” și „T: InnoDB Transactions”. Apăsați „k” pentru a emite a
Comanda KILL sau „x” pentru a lansa o comandă KILL QUERY. innotop vă va solicita
ID-ul serverului și/sau al conexiunii de ucis (innotop nu vă solicită dacă există doar unul
posibilă alegere pentru orice intrare). innotop preselectează cea mai lungă interogare sau interogarea
cea mai veche conexiune. Confirmați comanda cu „y”.

În „Stare replicare slave”” în „M: Modul Master, puteți porni și opri slave cu ajutorul
tastele „a” și, respectiv, „o”. Puteți trimite aceste comenzi către mai mulți sclavi simultan.
innotop completează o comandă implicită START SLAVE sau STOP SLAVE pentru tine, dar poți
editați de fapt comanda și trimiteți orice doriți, cum ar fi SET GLOBAL
SQL_SLAVE_SKIP_COUNTER=1 pentru a face ca slave să sară peste un eveniment binlog atunci când acesta începe.

De asemenea, puteți cere innotop să calculeze cel mai vechi binlog utilizat de orice sclav și să emită un
PURGE MASTER Jurnalele pe master. Folosiți tasta „b” pentru aceasta. innotop vă va solicita a
master pentru a rula comanda, apoi vă solicită numele conexiunii acelui master
sclavi (nu există nicio modalitate ca innotop să determine acest lucru în mod sigur). innotop va găsi
binlog-ul minim folosit de aceste conexiuni slave și sugerează-l ca argument pentru
PURGE MASTER LOGS.

SERVER CONEXIUNI


Când creați o conexiune la server folosind „@”, innotop vă solicită o serie de intrări, ca
urmează:

DSN Un DSN este un nume de sursă de date, care este argumentul inițial transmis modulului DBI
pentru conectarea la un server. De obicei este de formă

DBI:mysql:;mysql_read_default_group=mysql;gazdă=HOSTNAME

Deoarece acest DSN este transmis driverului DBD::mysql, ar trebui să citiți driverul
documentația la „/search.cpan.org/dist/DBD-mysql/lib/DBD/mysql.pm”” în „http: pentru
detalii exacte despre toate opțiunile pe care le puteți transmite driverului în DSN. Poți citi
mai multe despre DBI lahttp://dbi.perl.org/docs/>, și mai ales la
<http://search.cpan.org/~timb/DBI/DBI.pm>.

Opțiunea mysql_read_default_group=mysql permite driverului DBD să vă citească opțiunile MySQL
fișiere, cum ar fi ~/.my.cnf pe sisteme UNIX. Puteți folosi acest lucru pentru a evita specificarea unui
numele de utilizator sau parola pentru conexiune.

Tabelul de blocare InnoDB
Acest element opțional îi spune lui innotop un nume de tabel pe care îl poate folosi pentru a crea în mod deliberat un
blocaj mic (vezi „D: Blocaje InnoDB”). Dacă specificați această opțiune, aveți nevoie doar
pentru a fi sigur că tabelul nu există și că innotop poate crea și arunca tabelul
cu motorul de stocare InnoDB. Puteți omite în siguranță sau pur și simplu acceptați implicit dacă sunteți
nu intenționați să folosiți asta.

Nume de utilizator
innotop vă va întreba dacă doriți să specificați un nume de utilizator. Dacă spui „y”, atunci va fi
vă solicită un nume de utilizator. Dacă aveți un fișier de opțiuni MySQL care specifică dvs
nume de utilizator, nu trebuie să specificați un nume de utilizator.

Numele de utilizator este implicit numele dvs. de conectare pe sistemul pe care rulați innotop.

Parolă
innotop vă va întreba dacă doriți să specificați o parolă. Ca și numele de utilizator,
parola este opțională, dar există o solicitare suplimentară care vă întreabă dacă doriți să salvați
parola din fișierul de configurare innotop. Dacă nu îl salvați în
de configurare, innotop vă va solicita o parolă de fiecare dată când pornește.
Parolele din fișierul de configurare innotop sunt salvate în text simplu, nu criptate
oricum.

După ce ați terminat de răspuns la aceste întrebări, ar trebui să fiți conectat la un server. Dar
innotop nu se limitează la monitorizarea unui singur server; puteți defini multe servere
conexiuni și comutați între ele apăsând tasta „@”. Consultați „COMMUTARE ÎNTRE
CONEXIUNI”.

SERVER GRUPURI


Dacă aveți mai multe instanțe MySQL, le puteți pune în grupuri numite, cum ar fi „toate”,
„stăpâni” și „sclavi”, pe care innotop îi poate monitoriza pe toți împreună.

Puteți alege ce grup să monitorizați cu tasta „#” și puteți apăsa tasta TAB
trece la grupul următor. Dacă în prezent nu monitorizați un grup, apăsați TAB
selectează primul grup.

Pentru a crea un grup, apăsați tasta „#” și introduceți numele noului grup, apoi introduceți
numele conexiunilor pe care doriți să le conțină grupul.

COMUTARE ÎNTRE CONEXIUNI


innotop vă permite să schimbați rapid serverele pe care le monitorizați. Cea mai simplă cale este prin
apăsând tasta „@” și tastând numele (numele) conexiunii (conexiunilor) pe care doriți să le utilizați. Acest
setarea este per-mod, astfel încât să puteți monitoriza diferite conexiuni în fiecare mod și innotop
își amintește ce conexiuni alegeți.

Puteți trece rapid la conexiunea „următoarea” în ordine alfabetică cu tasta „n”.
Dacă monitorizați un grup de servere (consultați „GRUPURI DE SERVER”), acesta va trece la primul
conexiune.

De asemenea, puteți introduce multe nume de conexiune, iar innotop va prelua și afișa date de la acestea
toate. Doar separați numele conexiunilor cu spații, de exemplu „server1 server2”.
Din nou, dacă introduceți numele unei conexiuni care nu există, innotop vă va solicita
pentru informații despre conexiune și creați conexiunea.

O altă modalitate de a monitoriza mai multe conexiuni simultan este cu grupuri de servere. Poți să folosești
tasta TAB pentru a comuta la grupul „următorul” în ordine alfabetică, sau dacă nu sunteți
monitorizarea oricăror grupuri, TAB va trece la primul grup.

innotop nu preia date în paralel de la conexiuni, deci dacă monitorizați o mare
grup sau mai multe conexiuni, este posibil să observați o întârziere crescută între căpușe.

Când monitorizați mai multe conexiuni, bara de stare a lui innotop se modifică. Vezi „INNOTOP
STARE".

EROARE MANIPULARE


Gestionarea erorilor nu este atât de importantă atunci când monitorizați o singură conexiune, dar este crucială
când aveți multe conexiuni active. Un server s-a prăbușit sau o conexiune pierdută nu ar trebui
crash innotop. Ca rezultat, innotop va continua să ruleze chiar și atunci când există o eroare; aceasta
pur și simplu nu va afișa nicio informație de la conexiunea care a avut o eroare. Din cauza
asta, comportamentul lui innotop te-ar putea deruta. Este o caracteristică, nu un bug!

innotop nu continuă să interogheze conexiunile care au erori, deoarece acestea pot încetini
innotop și îngreunează utilizarea, mai ales dacă eroarea este o problemă de conectare și
provoacă o pauză lungă. În schimb, innotop reîncearcă ocazional conexiunea pentru a vedea dacă
eroarea inca mai exista. Dacă da, va aștepta până la un moment dat în viitor. Asteptarea
timpul crește în căpușe ca seria Fibonacci, așa că încearcă mai rar odată cu timpul
trece.

Deoarece erorile pot apărea numai în anumite moduri din cauza comenzilor SQL emise în
acele moduri, innotop ține evidența modului care a cauzat eroarea. Dacă treci la a
mod diferit, innotop va reîncerca conexiunea în loc să aștepte.

În mod implicit, innotop va afișa problema în text roșu în partea de jos a primului tabel
pe ecran. Puteți dezactiva acest comportament cu „show_cxn_errors_in_tbl”
opțiunea de configurare, care este activată implicit. Dacă opțiunea „depanare” este activată,
innotop va afișa eroarea în partea de jos a fiecărui tabel, nu doar primul. Si daca
„show_cxn_errors” este activat, innotop va imprima textul erorii și în STDOUT. Eroare
mesajele s-ar putea afișa numai în modul care a cauzat eroarea, în funcție de mod și
dacă innotop evită interogarea acelei conexiuni.

NEINTERACTIVĂ OPERAȚIUNEA


Puteți rula innotop în modul non-interactiv, caz în care este controlat în totalitate
fișierul de configurare și opțiunile din linia de comandă. Pentru a începe innotop în non-interactiv
modul, dați opțiunea de linie de comandă L"<--nonint">. Acest lucru schimbă comportamentul lui innotop în
următoarele moduri:

· Anumite module Perl nu sunt încărcate. Termen::Readline nu este încărcat, deoarece innotop
nu solicită interactiv. Termen::ANSICOlor și Win32::Console::Module ANSI sunt
nu este încărcat. Termenul::ReadKey este încă folosit, deoarece innotop poate fi nevoit să solicite
parolele de conectare la pornire.

· innotop nu șterge ecranul după fiecare bifă.

· innotop nu persistă nicio modificare a fișierului de configurare.

· Dacă este dat „--count” și innotop este în modul incremental (vezi „status_inc” și
„--inc”), innotop se reîmprospătează de fapt încă o dată decât este specificat, astfel încât să poată imprima
statistici incrementale. Acest lucru suprimă ieșirea în timpul primei bifări, așa că innotop poate
par să atârne.

· innotop afișează doar primul tabel din fiecare mod. Acesta este astfel încât ieșirea poate fi
procesat cu ușurință cu alte utilitare de linie de comandă, cum ar fi awk și sed. A schimba
care tabele sunt afișate în fiecare mod, vezi „TABELE”. Din moment ce modul „Q: Lista de interogări” este așa
important, innotop dezactivează automat tabelul „q_header”. Acest lucru vă asigură că veți
vezi tabelul „processlist”, chiar dacă ai configurat innotop pentru a afișa q_header
tabel în timpul operațiunii interactive. În mod similar, în modul „T: Tranzacții InnoDB”, sistemul
Tabelul „t_header” este suprimat, astfel încât să vedeți doar tabelul „innodb_transactions”.

· Toate rezultatele sunt separate prin tabulatori în loc să fie aliniate pe coloană cu spații albe și
innotop tipărește întregul conținut al fiecărui tabel în loc să imprime doar un ecran
la un moment dat.

· innotop imprimă o singură dată anteturile coloanelor în loc de fiecare bifă (vezi „hide_hdr”).
innotop nu imprimă legendele tabelelor (vezi „display_table_captions”). innotop asigură
nu există linii goale în ieșire.

· innotop nu onorează transformarea „scurta”, care în mod normal scurtează unele
numere în formate care pot fi citite de om.

· innotop nu imprimă o linie de stare (vezi „STAREA INNOTOP”).

CONFIGURARE


Aproape totul despre innotop este configurabil. Majoritatea lucrurilor pot fi schimbate
comenzi încorporate, dar puteți edita și fișierul de configurare.

În timp ce rulați innotop, apăsați tasta „$” pentru a afișa dialogul de editare a configurației.
Apăsați o altă tastă pentru a selecta tipul de date pe care doriți să le editați:

S: Declarație Timp de somn
Editează întârzierile de somn ale instrucțiunilor SQL, care fac o pauză innotop pentru cantitatea specificată de
timp după executarea unei instrucțiuni. Consultați „DECLARAȚII SQL” pentru o definiție a fiecăruia
declarație și ce face. În mod implicit, innotop nu întârzie după nicio declarație.

Această caracteristică este inclusă, astfel încât să puteți personaliza efectele secundare cauzate de monitorizare
serverul dvs. Este posibil să nu vedeți niciun efect, dar unii utilizatori innotop au observat asta
anumite versiuni MySQL cu încărcare foarte mare cu InnoDB activat durează mai mult decât de obicei
pentru a executa SHOW GLOBAL STATUS. Dacă innotop sună AFIȚĂ imediat LISTA COMPLETĂ DE PROCES
ulterior, lista de procese conține mai multe interogări decât media mașina
orice moment dat. Se configurează innotop pentru a se întrerupe scurt după apelarea SHOW GLOBAL
STATUS atenuează acest efect.

Timpii de somn sunt stocați în secțiunea „stmt_sleep_times” a fișierului de configurare.
Sunt acceptate adormirile cu fracțiuni de secundă, sub rezerva limitărilor hardware-ului dvs.

c: Editați coloanele
Pornește editorul de tabele pe unul dintre tabelele afișate. Vezi „EDITOR DE TABEL”. Un
o modalitate alternativă de a porni editorul de tabel fără a intra în dialogul de configurare este
cu tasta „^”.

g: Configurație generală
Pornește editorul de configurare pentru a edita configurația globală și specifică modului
variabile (vezi „MODURI”). innotop vă solicită să alegeți o variabilă dintre
globale și specifice modului în funcție de modul curent.

k: Reguli de colorare a rândurilor
Pornește editorul de reguli de colorare a rândurilor pe unul dintre tabelele afișate. Vezi „CULORI”
pentru detalii.

p: Gestionați pluginurile
Pornește editorul de configurare a pluginului. Consultați „PLUGINE” pentru detalii.

s: Grupuri de servere
Vă permite să creați și să editați grupuri de servere. Consultați „GRUPURI DE SERVER”.

t: Alegeți Tabele afișate
Vă permite să alegeți ce tabele să afișați în acest mod. Vezi „MODURI” și „TABELE”.

CONFIGURARE FILE


Locațiile implicite ale fișierelor de configurare ale innotop sunt $HOME/.innotop și
/etc/innotop/innotop.conf și sunt căutați în această ordine. Dacă primul
fișierul de configurare există, al doilea nu va fi procesat. Acestea pot fi înlocuite cu
opțiunea de linie de comandă „--config”. Îl puteți edita manual în siguranță, oricum citește innotop
fișierul de configurare când pornește și, dacă readonly este setat la 0, îl scrie din nou
când iese. Astfel, dacă readonly este setat la 0, orice modificări pe care le faci manual în timp ce innotop
rulează va fi pierdut.

innotop nu stochează întreaga configurație în fișierul de configurare. Are un imens
set de valori implicite de configurare pe care le păstrează numai în memorie și configurația
fișierul înlocuiește doar aceste valori implicite. Când personalizați o setare implicită, innotop
notificări și apoi stochează personalizările în fișier. Aceasta reduce dimensiunea fișierului,
facilitează editarea și face upgrade-urile mai ușoare.

Un fișier de configurare este implicit numai pentru citire. Puteți înlocui asta cu „--write”. Vedea
„numai citire”.

Fișierul de configurare este aranjat în secțiuni ca un fișier INI. Fiecare secțiune începe
cu [nume-secțiune] și se termină cu [/nume-secțiune]. Intrările fiecărei secțiuni au un
sintaxă diferită în funcție de datele pe care trebuie să le stocheze. Puteți pune comentarii în
fişier; orice rând care începe cu un caracter # este un comentariu. innotop nu va citi
comentarii, astfel încât să nu le scrie înapoi în fișier când acesta iese. Comentarii în citire-
numai fișierele de configurare sunt încă utile, totuși.

Prima linie din fișier este numărul versiunii lui innotop. Acest lucru permite innotop să observe când
formatul de fișier nu este compatibil cu versiunea inversă și faceți upgrade fără probleme, fără a vă distruge
configurație personalizată.

Următoarea listă descrie fiecare secțiune a fișierului de configurare și datele acestuia
conține:

general
Secțiunea „general” conține variabile de configurare globale și variabile care pot
fi specific modului, dar nu aparține nici unei alte secțiuni. Sintaxa este simplă
cheie=lista de valori. innotop scrie un comentariu deasupra fiecărei valori pentru a vă ajuta să editați fișierul
de mana.

S_func
Controlează prezentarea modului S (vezi „S: Variabile și stare”). Dacă g, valorile sunt
reprezentat grafic; dacă s, valorile sunt ca vmstat; dacă p, valorile sunt într-un tabel pivotat.

S_set
Specifică ce set de variabile să fie afișat în modul „S: Variabile și stare”. Vedea
„SETURI VARIABILE”.

auto_wipe_dl
Instruiește innotop să șteargă automat blocajele mari atunci când le observă.
Când se întâmplă acest lucru, este posibil să observați o ușoară întârziere. La următoarea bifă, o vei face
vedeți de obicei informațiile care erau trunchiate de blocajul mare.

set de caractere
Specifică ce fel de caractere să permită prin „no_ctrl_char”
transformare. Acest lucru împiedică caracterele care nu pot fi imprimate să încurce un terminal
când monitorizați interogări care conțin date binare, cum ar fi imagini.

Valoarea implicită este „ascii”, care consideră că orice în afara ASCII normal este a
caracter de control. Celelalte valori permise sunt „unicode” și „none”. 'nici unul'
consideră fiecare caracter un caracter de control, care poate fi util pentru colaps
TOATE câmpurile text din interogări.

cmd_filter
Acesta este prefixul care filtrează variabilele în modul „C: Rezumatul comenzii”.

culoare
Dacă colorarea terminalului este permisă.

cxn_timeout
Pe versiunile MySQL 4.0.3 și mai noi, această variabilă este folosită pentru a seta conexiunea
timeout, deci MySQL nu închide conexiunea dacă nu este folosită o perioadă.
Acest lucru se poate întâmpla deoarece o conexiune nu este monitorizată într-un anumit mod, pentru
exemplu.

depana
Această opțiune permite erori mai detaliate și face innotop mai strict în unele
locuri. Poate ajuta la depanarea filtrelor și a altor coduri definite de utilizator. De asemenea
face ca innotop să scrie o mulțime de informații în „debugfile” atunci când are loc o blocare.

fişier de depanare
Un fișier în care innotop va scrie informații atunci când are loc o blocare. Vedea
„FIȘIERE”.

display_table_captions
innotop afișează o legendă de tabel deasupra majorității tabelelor. Această variabilă suprimă sau
afișează legendele pe toate tabelele la nivel global. Unele tabele sunt configurate cu
proprietatea hide_caption, care o înlocuiește.

global
Indiferent dacă se afișează variabilele și starea GLOBALE. innotop încearcă să facă asta doar pe
servere care acceptă opțiunea GLOBAL pentru SHOW VARIABLES și SHOW STATUS. În
unele versiuni MySQL, aveți nevoie de anumite privilegii pentru a face acest lucru; daca nu ai
ele, innotop nu va putea prelua date variabile și de stare. Acest
variabila de configurare vă permite să rulați innotop și să obțineți ce date puteți chiar
fără privilegiile ridicate.

Nu mai pot găsi sau reproduce situația în care GLOBAL nu era permis, dar eu
stiu ca a fost unul.

graph_char
Definește caracterul de utilizat la desenarea graficelor în modul „S: Variabile și stare”.

header_highlight
Definește modul de evidențiere a antetelor de coloană. Acest lucru funcționează numai dacă Termen::ANSICOlor este
disponibil. Valorile valide sunt „aldine” și „subliniate”.

ascunde_hdr
Ascunde antetele coloanelor la nivel global.

interval
Intervalul la care innotop își va reîmprospăta datele (bifurile). Intervalul este
implementat ca timp de somn între căpușe, astfel încât intervalul real va varia
în funcție de cât timp durează innotop să preia și să randeze datele.

Această variabilă acceptă fracțiuni de secundă.

mod
Modul în care ar trebui să înceapă innotop. Argumentele permise sunt aceleași ca și
apăsări de taste care selectează un mod în mod interactiv. Vezi „MODURI”.

num_cifre
Câte cifre trebuie afișate în numere fracționale și procente. Intervalul acestei variabile
este între 0 și 9 și poate fi setat direct din modul „S: Variables & Status” cu
tastele „+” și „-”. Este folosit în „set_precision”, „shorten” și „percent”
transformări.

num_status_sets
Controlează câte seturi de variabile de stare să fie afișate în „S: Variabile și
Modul Stare". De asemenea, controlează numărul de seturi vechi de variabile păstrate de innotop
în memoria sa, deci cu cât această variabilă este mai mare, cu atât mai multă memorie folosește innotop.

plugin_dir
Specifică unde pot fi găsite pluginurile. În mod implicit, innotop stochează pluginuri în
subdirectorul „plugins” al directorului dumneavoastră de configurare innotop.

numai în citire
Dacă fișierul de configurare este doar în citire. Acest lucru nu poate fi setat interactiv.

show_cxn_errors
Face erori de conexiune de tipărire innotop la STDOUT. Consultați „GESTIUNEA ERORILOR”.

show_cxn_errors_in_tbl
Face erori de conectare la afișarea innotop ca rânduri din primul tabel de pe ecran. Vedea
"EROARE DE MANIPULARE".

show_percent
Adaugă un caracter „%” după valoarea returnată de transformarea „procent”.

show_statusbar
Controlează dacă se afișează bara de stare pe afișaj. Vezi „STAREA INNOTOP”.

skip_innodb
Dezactivează preluarea SHOW INNODB STATUS, în cazul în care serverele dvs. nu au InnoDB
activat și nu doriți ca innotop să încerce să o preia. Acest lucru poate fi de asemenea util
când nu aveți privilegiul SUPER, este necesar pentru a rula SHOW INNODB STATUS.

status_inc
Indiferent dacă se afișează valori absolute sau incrementale pentru variabilele de stare. incremental
valorile sunt calculate ca un decalaj față de ultima valoare innotop saw pentru asta
variabil. Aceasta este o setare globală, dar probabil va deveni specifică modului la
un moment dat. Chiar acum este onorat cam inconsecvent; unele moduri nu plătesc
atentie la ea.

Plugin-uri
Această secțiune conține o listă de nume de pachete ale pluginurilor active. Dacă pluginul există,
innotop îl va activa. Consultați „PLUGINE” pentru mai multe informații.

Filtre
Această secțiune conține filtre definite de utilizator (consultați „FILTRE”). Fiecare linie este în format
filter_name=text='filter text' tbls='listă de tabel'.

Textul filtrului este textul codului subrutinei. Lista tabelului este o listă de
tabele la care se poate aplica filtrul. În mod implicit, filtrele definite de utilizator se aplică
tabelul pentru care au fost create, dar îl puteți înlocui manual prin editarea
definiție în fișierul de configurare.

filtre_active
Această secțiune stochează ce filtre sunt active pe fiecare tabel. Fiecare linie este în
format table_name=filter_list.

tbl_meta
Această secțiune stochează coloane definite de utilizator sau personalizate de utilizator (a se vedea „Coloane”). Fiecare
line este în formatul col_name=properties, unde proprietățile sunt a
nume=lista cu valori cotate.

Conexiuni
Această secțiune conține conexiunile la server pe care le-ați definit. Fiecare linie este în
format nume=proprietăți, unde proprietățile sunt o listă nume=valoare. Proprietatile
se explică de la sine, iar singurul care este tratat în mod special este „pass”, care este
prezent numai dacă este setat „savepass”. Această secțiune a fișierului de configurare va fi
omisă dacă sunt utilizate opțiuni de linie de comandă DSN, nume de utilizator sau parolă. Vezi „SERVER
CONEXIUNI”.

active_connections
Această secțiune conține o listă a conexiunilor active în fiecare mod. Fiecare linie este
în formatul mode_name=connection_list.

server_groups
Această secțiune conține grupuri de servere. Fiecare linie are formatul name=connection_list.
Consultați „GRUPURI DE SERVER”.

active_server_groups
Această secțiune conține o listă a grupului de servere activ în fiecare mod. Fiecare linie este
în formatul nume_mod=grup_server.

max_values_seen
Această secțiune conține valorile maxime văzute pentru variabile. Acesta este folosit pentru a scala
grafice în modul „S: Variabile și stare”. Fiecare linie are formatul nume=valoare.

coloane_active
Această secțiune conține liste de coloane de tabel. Fiecare linie este în format
tbl_name=listă_coloană. Vezi „Coloane”.

sort_cols
Această secțiune conține definiția sortării. Fiecare linie este în format
tbl_name=listă_coloană. Dacă o coloană are prefixul „-”, acea coloană este sortată descendent.
Vezi „SORTARE”.

tabele_vizibile
Această secțiune definește ce tabele sunt vizibile în fiecare mod. Fiecare linie este în
format mode_name=table_list. Vezi „TABELE”.

varset-uri
Această secțiune definește seturi de variabile pentru utilizare în modul „S: Stare și variabile”. Fiecare linie
este în formatul nume=lista_variabile. Vezi „SETURI VARIABILE”.

culori
Această secțiune definește regulile de colorare. Fiecare linie este în format
tbl_name=listă_proprietăți. Vezi „CULORI”.

stmt_sleep_times
Această secțiune conține declarații de timp de somn. Fiecare linie este în format
statement_name=sleep_time. Consultați „S: Declarație de timp de somn”.

a se grupa cu
Această secțiune conține liste de coloane pentru expresiile group_by din tabel. Fiecare linie este în
formatul nume_tbl=listă_coloană. Vezi „GRUPARE”.

PERSONALIZARE


Puteți personaliza foarte mult innotop. De exemplu, puteți:

· Alegeți ce tabele să afișați și în ce ordine.

· Alegeți ce coloane sunt în acele tabele și creați coloane noi.

· Filtrați ce rânduri afișate cu filtre încorporate, filtre definite de utilizator și
Filtre.

· Sortați rândurile pentru a pune mai întâi datele importante sau grupați rândurile asociate.

· Evidențiați rândurile cu culoare.

· Personalizați alinierea, lățimea și formatarea coloanelor și aplicați transformări
la coloane pentru a extrage părți din valorile lor sau pentru a formata valorile după cum doriți (pentru
de exemplu, scurtarea numerelor mari la unități familiare).

· Proiectați-vă propriile expresii pentru a extrage și combina date după cum aveți nevoie. Acest lucru vă oferă
flexibilitate nelimitată.

Toate acestea și multe altele sunt explicate în secțiunile următoare.

TABELE
Un tabel este ceea ce te-ai aștepta: o colecție de coloane. Are și alte proprietăți,
precum o legendă. Filtrele, regulile de sortare și regulile de colorare aparțin tabelelor și
sunt tratate în secțiunile ulterioare.

Intern, metadatele tabelului sunt definite într-o structură de date numită %tbl_meta. Hașul ăsta
deține toate definițiile de tabel încorporate, care conțin o mulțime de instrucțiuni implicite pentru
innotop. Metadatele includ legenda, o listă de coloane pe care utilizatorul le-a personalizat, a
listă de coloane, o listă de coloane vizibile, o listă de filtre, reguli de culoare, o coloană de sortare
lista, direcția de sortare și câteva informații despre sursele de date ale tabelului. Cele mai multe dintre acestea
este personalizabil prin intermediul editorului de tabele (vezi „EDITOR DE TABEL”).

Puteți alege ce tabele să afișați apăsând tasta „$”. Vezi „MODURI” și „TABELE”.

Ciclul de viață al tabelului este următorul:

· Fiecare tabel începe cu o sursă de date, care este o matrice de hashe-uri. Vezi mai jos pentru
detalii despre sursele de date.

· Fiecare element al sursei de date devine un rând în tabelul final.

· Pentru fiecare element din sursa de date, innotop extrage valori din sursă și
creează un rând. Acest rând este un alt hash, pe care pașii ulterioare se vor referi ca $set.
Valorile extrase innotop sunt determinate de coloanele tabelului. Fiecare coloană are un
subrutină de extracție, compilată dintr-o expresie (vezi „EXPRESII”). Rezultați
row este un hash ale cărui chei sunt numite la fel ca numele coloanei.

· innotop filtrează rândurile, eliminând cele care nu trebuie afișate. Vedea
„FILTRE”.

· innotop sortează rândurile. Vezi „SORTARE”.

· innotop grupează rândurile împreună, dacă este specificat. Vezi „GRUPARE”.

· innotop colorează rândurile. Vezi „CULORI”.

· innotop transformă valorile coloanei din fiecare rând. Vezi „TRANSFORMĂRI”.

· innotop pivotează opțional rândurile (vezi „PIVOTARE”), apoi le filtrează și le sortează.

· innotop formatează și justifică rândurile ca tabel. În timpul acestui pas, se aplică innotop
formatare ulterioară a valorilor coloanei, inclusiv alinierea, maximă și minimă
latimi. innotop efectuează, de asemenea, verificarea erorilor finale pentru a se asigura că nu există blocări din cauza
valori nedefinite. innotop adaugă apoi o legendă dacă este specificată, iar tabelul este gata
imprimare.

Ciclul de viață este ușor diferit dacă tabelul este pivotat, așa cum s-a menționat mai sus. Pentru a clarifica,
dacă tabelul este pivotat, procesul este extragerea, gruparea, transformarea, pivotarea, filtrarea, sortarea,
crea. Dacă nu este pivotat, procesul este extragerea, filtrarea, sortarea, gruparea, culoarea,
transforma, crea. Acest proces ușor complicat nu se mapează atât de bine la SQL, dar
pivotarea complică lucrurile destul de bine. În linii mari, filtrarea și sortarea
se întâmplă cât de târziu este necesar pentru a obține rezultatul final așa cum v-ați aștepta, dar cât mai devreme
posibil pentru eficienta.

Fiecare tabel încorporat este descris mai jos:

adaptive_hash_index
Afișează date despre indexul hash adaptiv al InnoDB. Sursa datelor: „STATUS_VARIABLES”.

pool_tampon
Afișează date despre pool-ul de buffer-uri InnoDB. Sursa datelor: „STATUS_VARIABLES”.

cmd_summary
Afișează variabilele de stare ponderate. Sursa datelor: „STATUS_VARIABLES”.

deadlock_locks
Arată ce încuietori au fost ținute și așteptate până la ultimul blocaj detectat. Date
sursa: „DEADLOCK_LOCKS”.

deadlock_transactions
Afișează tranzacțiile implicate în ultimul blocaj detectat. Sursă de date:
„DEADLOCK_TRANSACTIONS”.

explica
Afișează rezultatul EXPLAIN. Sursa datelor: „EXPLAIN”.

file_io_misc
Afișează date despre fișierul InnoDB și operațiunile I/O. Sursă de date:
„STATUS_VARIABLES”.

fk_error
Afișează diferite date despre ultima eroare de cheie externă a InnoDB. Sursă de date:
„STATUS_VARIABLES”.

innodb_locks
Afișează blocările InnoDB. Sursa datelor: „INNODB_LOCKS”.

innodb_transactions
Afișează date despre tranzacțiile curente ale InnoDB. Sursă de date:
„INNODB_TRANSACTIONS”.

insert_buffers
Afișează date despre tamponul de inserare al InnoDB. Sursa datelor: „STATUS_VARIABLES”.

io_threads
Afișează date despre firele I/O ale InnoDB. Sursa datelor: „IO_THREADS”.

log_statistics
Afișează date despre sistemul de logare al InnoDB. Sursa datelor: „STATUS_VARIABLES”.

master_status
Afișează starea masterului de replicare. Sursa datelor: „STATUS_VARIABLES”.

open_tables
Afișează mesele deschise. Sursa datelor: „OPEN_TABLES”.

page_statistics
Afișează statisticile paginii InnoDB. Sursa datelor: „STATUS_VARIABLES”.

pending_io
Afișează operațiunile I/O în așteptare ale InnoDB. Sursa datelor: „STATUS_VARIABLES”.

lista de procese
Afișează procesele MySQL curente (file/conexiuni). Sursa datelor: „PROCESSLIST”.

q_header
Afișează diferite valori de stare. Sursa datelor: „STATUS_VARIABLES”.

row_operation_misc
Afișează date despre operațiunile pe rând ale InnoDB. Sursa datelor: „STATUS_VARIABLES”.

row_operations
Afișează date despre operațiunile pe rând ale InnoDB. Sursa datelor: „STATUS_VARIABLES”.

semafoare
Afișează date despre semaforele și mutexurile InnoDB. Sursa datelor: „STATUS_VARIABLES”.

slave_io_status
Afișează date despre firul I/O slave. Sursa datelor: „STATUS_VARIABLES”.

slave_sql_status
Afișează date despre firul SQL slave. Sursa datelor: „STATUS_VARIABLES”.

t_header
Afișează diferite valori de stare InnoDB. Sursa datelor: „STATUS_VARIABLES”.

var_status
Afișează date configurabile de utilizator. Sursa datelor: „STATUS_VARIABLES”.

wait_array
Afișează date despre matricea de așteptare a sistemului de operare InnoDB. Sursa datelor: „OS_WAIT_ARRAY”.

COLOANE
Coloanele aparțin tabelelor. Puteți alege coloanele unui tabel apăsând tasta „^”, care
pornește „TABLE EDITOR” și vă permite să alegeți și să editați coloanele. Apăsând „e” din interior
Editorul de tabel vă permite să editați proprietățile coloanei:

· hdr: un antet de coloană. Acesta apare pe primul rând al tabelului.

· just: justificare. '-' înseamnă justificat la stânga și '' înseamnă justificat la dreapta, la fel ca
cu coduri de formatare printf (nu o coincidență).

· dec: dacă se aliniază în continuare coloana pe punctul zecimal.

· num: dacă coloana este numerică. Acest lucru afectează modul în care sunt sortate valorile (lexical sau
numeric).

· etichetă: o mică notă despre coloană, care apare în casetele de dialog care ajută utilizatorul
alege coloane.

· src: o expresie pe care innotop o folosește pentru a extrage datele coloanei din sursa acesteia (vezi
"SURSE DE DATE"). Consultați „EXPRESII” pentru mai multe despre expresii.

· minw: specifică o lățime minimă de afișare. Acest lucru ajută la stabilizarea afișajului, care
face mai ușor de citit dacă datele se modifică frecvent.

· maxw: similar cu minw.

· trans: o listă de transformări de coloane. Vezi „TRANSFORMĂRI”.

· agg: o funcție agregată. Vezi „GRUPARE”. Valoarea implicită este „primul”.

· Aggonly: controlează dacă coloana se afișează numai atunci când gruparea este activată pe tabel
(vezi „GRUPARE”). În mod implicit, aceasta este dezactivată. Aceasta înseamnă că coloanele vor fi întotdeauna
afișat în mod implicit, indiferent dacă gruparea este activată sau nu. Dacă este setat aggonul unei coloane
adevărat, coloana va apărea când comutați gruparea pe tabel. Mai multe coloane
sunt setate în acest fel, cum ar fi coloana count pe „processlist” și „innodb_transactions”,
deci nu vedeți un număr când gruparea nu este activată, dar o vedeți când este.

FILTRE
Filtrele elimină rândurile de pe afișaj. Se comportă ca o clauză WHERE în SQL.
innotop are mai multe filtre încorporate, care elimină informații irelevante, cum ar fi inactiv
interogări, dar le puteți defini și pe propriile dvs. innotop vă permite, de asemenea, să creați filtre rapide,
care nu sunt salvate în fișierul de configurare și sunt doar o modalitate ușoară de vizualizare rapidă
doar câteva rânduri.

Puteți activa sau dezactiva un filtru pe orice tabel. Apăsați tasta „%” (mnemonic: % arată
ca o linie filtrată între două cercuri) și alegeți ce tabel doriți
filtru, dacă este cerut. Veți vedea apoi o listă de filtre posibile și o listă de filtre
activat în prezent pentru acel tabel. Introduceți numele filtrelor pe care doriți să le aplicați și apăsați
Enter.

DEFINIT DE UTILIZATOR FILTRE

Dacă introduceți un nume care nu există, innotop vă va solicita să creați filtrul.
Filtrele sunt ușor de creat dacă cunoașteți Perl și nu greu dacă nu știți. Ce faci
creează o subrutină care returnează adevărat dacă rândul ar trebui să fie afișat. Rândul este a
referința hash a fost transmisă subrutinei dvs. ca $set.

De exemplu, imaginați-vă că doriți să filtrați tabelul listei de procese, astfel încât să vedeți doar interogările respective
au rulat mai mult de cinci minute. Introduceți un nume nou pentru filtrul dvs. și când
solicitat pentru corpul subrutinei, apăsați TAB pentru a iniția completarea automată a terminalului.
Veți vedea numele coloanelor în tabelul „processlist” (în general, innotop încearcă să
vă ajută cu listele de completare automată). Doriți să filtrați pe coloana „timp”. Tasteaza
text „$set->{time} > 300” pentru a returna true când interogarea are mai mult de cinci minute.
Asta e tot ce trebuie să faci.

Cu alte cuvinte, codul pe care îl tastezi este înconjurat de un context implicit, care arată
asa:

filtru secundar {
my ( $set ) = @_;
# CODUL TĂU AICI
}

Dacă filtrul tău nu funcționează sau dacă altceva se comportă brusc diferit, s-ar putea
au făcut o eroare în filtrul dvs. și innotop detectează în tăcere eroarea. Încerca
permițând „debug” pentru a face ca innotop să arunce o eroare.

FILTRE RAPIDE

Filtrele rapide ale innotop sunt o comandă rapidă pentru a crea un filtru temporar care nu persistă
când reporniți innotop. Pentru a crea un filtru rapid, apăsați tasta „/”. innotop va
vă solicită numele coloanei și textul de filtrare. Din nou, puteți utiliza completarea automată
nume de coloane. Textul filtrului poate fi doar textul pe care doriți să îl „căutați”. Pentru
de exemplu, pentru a filtra tabelul „listă de procese” pe interogări care se referă la tabelul de produse,
tastați „/” și apoi „info produs”.

Textul de filtru poate fi de fapt orice expresie regulată Perl, dar desigur un literal
șir precum „produs” funcționează bine ca expresie regulată.

În culise, innotop combină filtrul rapid într-un filtru special etichetat
altfel ca orice alt filtru. Pur și simplu nu este salvat în fișierul de configurare.

Pentru a șterge filtrele rapide, apăsați tasta „\”, iar innotop le va șterge pe toate simultan.

TRIERE
innotop are valori implicite sensibile încorporate pentru a sorta cele mai importante rânduri în partea de sus a
masa. Ca orice altceva în innotop, puteți personaliza modul în care este sortat orice tabel.

Pentru a porni dialogul de sortare, porniți „TABLE EDITOR” cu tasta „^”, alegeți un tabel dacă
necesar și apăsați tasta „s”. Veți vedea o listă de coloane pe care le puteți utiliza în sortare
expresie și expresia de sortare curentă, dacă există. Introduceți o listă de coloane după care dvs
doriți să sortați și apăsați Enter. Dacă doriți să sortați invers, prefixați numele coloanei cu a
semnul minus. De exemplu, dacă doriți să sortați după coloana a crescător, atunci coloana b
descendent, tastați „a -b”. De asemenea, puteți adăuga în mod explicit un + în fața coloanelor pe care doriți
sortați crescător, dar nu este obligatoriu.

Unele moduri au taste mapate pentru a deschide direct acest dialog și pentru a inversa rapid sortarea
direcţie. Presa '?' ca de obicei, pentru a vedea ce taste sunt mapate în orice mod.

GRUPARE
innotop poate grupa, sau agrega, rânduri împreună (termenii sunt folosiți interschimbabil). Acest
este destul de similar cu o clauză SQL GROUP BY. Puteți specifica gruparea pe anumite coloane,
sau dacă nu specificați niciunul, întregul set de rânduri este tratat ca un singur grup. Aceasta este
la fel ca SQL până acum, dar spre deosebire de SQL, puteți selecta și coloane negrupate. innotop
de fapt agregă fiecare coloană. Dacă nu specificați în mod explicit o funcție de grupare,
implicit este „primul”. Aceasta este practic o comoditate, astfel încât nu trebuie să specificați un
funcție de agregare pentru fiecare coloană dorită în rezultat.

Puteți comuta rapid gruparea pe un tabel cu tasta „=”, care comută agregatul acesteia
proprietate. Această proprietate nu persistă în fișierul de configurare.

Coloanele după care este grupat tabelul sunt specificate în proprietatea sa group_by. Cand
activați gruparea, innotop plasează coloanele group_by în extrema stângă a tabelului,
chiar dacă nu ar trebui să fie vizibile. Restul coloanelor vizibile apar în
comanda dupa ei.

Două tabele au liste implicite group_by și o coloană de numărare încorporată: „processlist” și
„innodb_transactions”. Gruparea se face după conexiune și stare, astfel încât să puteți vedea rapid
câte interogări sau tranzacții sunt într-o stare dată pe fiecare server pe care îl monitorizați.
Coloanele de timp sunt agregate ca sumă; celelalte coloane sunt lăsate la „prima” implicită
agregare.

În mod implicit, tabelul afișat în modul „S: Variabile și stare” folosește și gruparea, astfel încât să puteți
monitorizați variabilele și starea pe mai multe servere. Funcția de agregare implicită în
acest mod este „mediu”.

Funcțiile de grupare valide sunt definite în hash-ul %agg_funcs. Ei includ

primul
Returnează primul element din grup.

conta
Returnează numărul de elemente din grup, inclusiv elemente nedefinite, la fel ca
COUNT(*) SQL.

avg Returnează media elementelor definite din grup.

sum Returnează suma elementelor din grup.

Iată un exemplu de grupare la locul de muncă. Să presupunem că aveți un server foarte ocupat cu sute
de conexiuni deschise și doriți să vedeți câte conexiuni sunt în ce stare. Folosind
conform regulilor de grupare încorporate, puteți apăsa „Q” pentru a intra în modul „Q: Lista de interogări”. Apăsați „=“
pentru a comuta gruparea (dacă este necesar, selectați tabelul „listă de procese” când vi se solicită).

Afișajul dvs. ar putea arăta acum astfel:

Solicitare Lista (? Pentru ajutor) localhost, 32:33, 0.11 QPS, 1 THD, 5.0.38-log

CXN Cmd Cnt ID User Host Time Interogare
localhost Interogare 49 12933 webusr localhost 19:38 SELECT * FROM
localhost Trimitere Da 23 2383 webusr localhost 12:43 SELECT col1,
localhost Sleep 120 140 webusr localhost 5:18:12
localhost Statistici 12 19213 webusr localhost 01:19 SELECT * FROM

Aceasta este de fapt o imagine destul de îngrijorătoare. Ai o mulțime de conexiuni inactiv (Sleep),
și unele conexiuni de executare interogări (Query și trimiterea de date). E în regulă, dar tu
au, de asemenea, multe în statutul Statistici, cheltuind colectiv peste un minut. Asta înseamnă
Optimizatorul de interogări are foarte greu să optimizeze declarațiile dvs. Ceva este
gresit; În mod normal, ar trebui să dureze milisecunde pentru a optimiza interogările. S-ar putea să nu fi văzut
acest model dacă nu te-ai uitat la conexiunile tale în total. (Acesta este un inventat
exemplu, dar se poate întâmpla în viața reală).

PIVOTARE
innotop poate pivota un tabel pentru un afișaj mai compact, similar cu un tabel pivot din a
foaie de calcul (cunoscută și ca tabel încrucișat). Pivotarea unui tabel transformă coloanele în rânduri. Să presupunem
incepi cu acest tabel:

foo bar
=== ===
1 3
2 4

După pivotare, tabelul va arăta astfel:

nume set0 set1
==== ==== ====
foo 1 2
bar 3 4

Pentru a obține rezultate rezonabile, poate fi necesar să grup cât și pivotantă. innotop în prezent
face acest lucru pentru modul „S: Variabile și stare”.

CULORI
În mod implicit, innotop evidențiază rândurile cu culoare, astfel încât să puteți vedea dintr-o privire care sunt rândurile
mai important. Puteți personaliza regulile Colorare și adăugați propriul la orice masă.
Deschideți editorul de tabel cu tasta „^”, alegeți un tabel dacă este necesar și apăsați „o” pentru a deschide
dialogul editorului de culori.

Dialogul editorului de culori afișează regulile aplicate tabelului, în ordinea în care sunt
evaluat. Fiecare rând este evaluat în raport cu fiecare regulă pentru a vedea dacă regula se potrivește cu rândul; dacă
da, rândul primește culoarea specificată și nu sunt evaluate alte reguli. Regulile
arăta în felul următor:

stare eq Blocat negru pe_roșu
cmd eq Sleep white
user eq system user white
cmd eq Conectați alb
cmd eq Binlog Dump alb
timp > 600 roșu
timp > 120 galben
timp > 60 verde
timp > 30 cyan

Acesta este setul implicit de reguli pentru tabelul „processlist”. În ordine de prioritate, acestea
regulile fac interogările blocate negre pe un fundal roșu, conexiunile „îngrijite” de la
interogări de replicare și adormire și face ca interogările să treacă de la cyan la roșu pe măsură ce rulează
mai lung.

(Din anumite motive, codul de culoare ANSI „alb” este de fapt un gri deschis. Terminalul tău
afișajul poate varia; experimentează pentru a găsi culorile care îți plac).

Puteți folosi apăsările de taste pentru a muta regulile în sus și în jos, ceea ce le reordonează prioritatea. Tu
poate, de asemenea, șterge reguli și adăuga altele noi. Dacă adăugați o nouă regulă, innotop vă solicită
coloana, un operator pentru comparație, o valoare cu care să compare coloana,
și o culoare de atribuit dacă regula se potrivește. Există completare automată și solicitare la fiecare
Etapa.

Valoarea din a treia etapă trebuie cotată corect. innotop nu încearcă să citeze
valoarea pentru că nu știe dacă ar trebui să trateze valoarea ca șir sau a
număr. Dacă doriți să comparați coloana cu un șir, ca de exemplu în primul
regula de mai sus, ar trebui să introduceți „Blocat” înconjurat de ghilimele. Dacă primești un mesaj de eroare
despre un cuvânt gol, probabil că ar fi trebuit să citați ceva.

EXPRESII
Expresiile se află în centrul modului în care funcționează innotop și sunt ceea ce vă permite să vă extindeți
innotop după cum doriți. Amintiți-vă ciclul de viață al tabelului explicat în „TABELE”. Expresiile sunt
utilizat în primul pas, în care extrage valori dintr-o sursă de date pentru a forma rânduri.

Face acest lucru apelând o subrutină pentru fiecare coloană, transmițându-i setul de date sursă, a
set de valori curente și un set de valori anterioare. Acestea sunt toate necesare, astfel încât
subrutina poate calcula lucruri precum diferența dintre această bifă și cea anterioară
bifează.

Subrutinele care extrag datele din set sunt compilate din expresii. Acest
oferă mult mai multă putere decât doar denumirea valorilor pentru a umple coloanele, deoarece aceasta
permite ca valoarea coloanei să fie calculată din orice date sunt necesare, dar evită
trebuie să scrieți cod Perl complicat și lung.

innotop începe cu un șir de text care poate arăta la fel de simplu ca numele unei valori sau ca
complicat ca o expresie Perl cu drepturi depline. Se uită la fiecare jeton „cuvânt gol” din
șir și decide dacă ar trebui să fie o cheie în hash-ul $set. Cuvântul gol este un
valoare necotată care nu este deja înconjurată de lucruri codificate, cum ar fi semnele dolarului sau crețul
paranteze. Dacă innotop decide că bareword nu este o funcție sau alt cod Perl valid,
îl transformă într-un acces hash. După ce întregul șir este procesat, innotop se compilează
o subrutină, ca aceasta:

subcompute_column_value {
my ( $set, $cur, $pre ) = @_;
my $val = # STRING EXPANDED MERGE AICI
return $val;
}

Iată un exemplu concret, luat din tabelul de antet „q_header” în modul „Q: Lista de interogări”.
Această expresie calculează valorile coloanei qps, sau Interogări pe secundă, din
valorile returnate de SHOW STATUS:

Întrebări/Uptime_hires

innotop decide că ambele cuvinte sunt cuvinte goale și transformă această expresie în
următorul cod Perl:

$set->{Întrebări}/$set->{Uptime_hires}

Când este înconjurat de restul codului subrutinei, acesta este executabil Perl
calculează o valoare de înaltă rezoluție a interogărilor pe secundă.

Argumentele subrutinei sunt numite $set, $cur și $pre. În cele mai multe cazuri, $set și
$cur vor fi aceleași valori. Totuși, dacă „status_inc” este setat, $cur nu va fi același
ca $set, deoarece $set va conține deja valori care reprezintă diferența incrementală
intre $cur si $pre.

Fiecare coloană din innotop este calculată prin subrutine compilate în același mod. Există
nicio diferență între coloanele încorporate în innotop și coloanele definite de utilizator. Aceasta păstrează
lucruri consistente și previzibile.

TRANSFORMĂRI
Transformările modifică modul în care este redată o valoare. De exemplu, pot lua un număr de
secunde și afișați-l în format H:M:S. Sunt definite următoarele transformări:

commify
Adaugă virgule la numere mari la fiecare trei zecimale.

dulint_to_int
Acceptă două numere întregi fără semn și le transformă într-un singur lung. Aceasta este
util pentru anumite operațiuni cu InnoDB, care utilizează două numere întregi ca tranzacție
identificatori, de exemplu.

no_ctrl_char
Elimină caracterele de control citate din valoare. Aceasta este afectată de „charset”
variabila de configurare.

Această transformare operează numai în șiruri de caractere, de exemplu, valori pentru un SET
clauză într-o instrucțiune UPDATE. Nu va modifica declarația UPDATE, dar o va modifica
restrângeți șirul citat la [BINARY] sau [TEXT], în funcție de setul de caractere.

la sută
Convertește un număr într-un procent înmulțindu-l cu doi, formatându-l cu
„num_digits” cifre după virgulă zecimală și, opțional, adăugarea unui semn de procente (vezi
„show_percent”).

secs_to_time
Formatează un număr de secunde ca timp în format zile+ore:minute:secunde.

set_precision
Formatează numere cu „num_digits” număr de cifre după virgulă zecimală.

scurta
Formatează un număr ca unitate de 1024 (k/M/G/T) și cu „num_digits” un număr de cifre
după virgulă zecimală.

TABEL EDITOR
Editorul de tabele innotop vă permite să personalizați tabelele cu apăsări de taste. Începi masa
editor cu tasta „^”. Dacă există mai multe tabele pe ecran, acesta vă va solicita
pentru a alege una dintre ele. Odată ce faci, innotop îți va arăta ceva de genul acesta:

Editarea definiției tabelului pentru Buffer Pool. Presa ? pentru ajutor, q pentru a renunța.

nume hdr etichetă src
cxn CXN Conexiune de la care cxn
buf_pool_size Dimensiune Dimensiunea pool-ului tampon IB_bp_buf_poo
buf_free Bufs gratuit Buffere libere în b IB_bp_buf_fre
pages_total Pagini Total pagini IB_bp_pages_t
pages_modified Pagini murdare Pagini modificate (dirty IB_bp_pages_m
buf_pool_hit_rate Rata de accesare Buffer-ului Rata de accesare a pool-ului IB_bp_buf_poo
total_mem_alloc Memorie Total alocat de memorie IB_bp_total_m
add_pool_alloc Add'l Pool Pool suplimentar alloca IB_bp_add_poo

Prima linie arată ce tabel editați și vă reamintește din nou să apăsați '?' Pentru o
lista de mapări cheie. Restul este o reprezentare tabelară a coloanelor tabelului,
pentru că asta este probabil ceea ce încercați să editați. Cu toate acestea, puteți edita mai mult decât doar
coloanele tabelului; acest ecran poate porni editorul de filtre, editorul de reguli de culoare și multe altele.

Fiecare rând de pe afișaj arată o singură coloană în tabelul pe care îl editați, împreună cu a
câteva dintre proprietățile sale, cum ar fi antetul și expresia sursă (vezi „EXPRESIUNI”).

Mapările cheie sunt în stil Vim, ca în multe alte locuri. Apăsând „j” și „k” se deplasează
evidențiați în sus sau în jos. Apoi puteți (d) șterge sau (e) edita coloana evidențiată. Poti
de asemenea (a) adăugați o coloană la tabel. Acest lucru de fapt activează deja una dintre coloane
definit pentru tabel; vă solicită să alegeți dintre coloanele disponibile, dar nu
afișate în prezent. În cele din urmă, puteți reordona coloanele cu tastele „+” și „-”.

Puteți face mai mult decât editați coloanele cu editorul de tabel, puteți edita și altele
proprietăți, cum ar fi expresia de sortare a tabelului și expresia de grupare. Presa '?' pentru a vedea
lista completă, desigur.

Dacă doriți să personalizați cu adevărat și să vă creați propria coloană, spre deosebire de doar activarea
unul încorporat care nu este afișat în prezent, apăsați tasta (nou) și innotop o va face
vă solicită informațiile de care are nevoie:

· Numele coloanei: acesta trebuie să fie un cuvânt fără caractere amuzante, de exemplu doar
litere, cifre și liniuțe de subliniere.

· Antetul coloanei: aceasta este eticheta care apare în partea de sus a coloanei, în
antetul tabelului. Acest lucru poate avea spații și personaje amuzante, dar aveți grijă să nu faceți
este prea larg și pierde spațiu pe ecran.

· Sursa de date a coloanei: aceasta este o expresie care determină ce date din
sursă (vezi „TABELE”) innotop va pune în coloană. Acesta poate fi doar numele
un articol din sursă sau poate fi o expresie mai complexă, așa cum este descris în
"EXPRESII".

După ce ați introdus datele necesare, tabelul dvs. are o nouă coloană. Nu este
diferența dintre această coloană și cele încorporate; poate avea toate aceleași proprietăți
și comportamente. innotop va scrie definiția coloanei în fișierul de configurare, deci
va persista pe parcursul sesiunilor.

Iată un exemplu: să presupunem că doriți să urmăriți de câte ori au încercat din nou sclavii dvs
tranzactii. Conform manualului MySQL, starea Slave_retried_transactions
variabila vă oferă acele date: „Numărul total de ori de la pornire în care
Firul SQL slave de replicare a reîncercat tranzacții. Această variabilă a fost adăugată în versiune
5.0.4.” Acest lucru este adecvat pentru a fi adăugat la tabelul „slave_sql_status”.

Pentru a adăuga coloana, treceți la modul de replicare-monitorizare cu tasta „M” și apăsați
tasta „^” pentru a porni editorul de tabel. Când vi se solicită, alegeți slave_sql_status ca
tabel, apoi apăsați „n” pentru a crea coloana. Tastați „Reîncercări” ca nume de coloană, „Reîncercări”
ca antet de coloană și „Slave_retried_transactions” ca sursă. Acum coloana este
creat și veți vedea din nou ecranul editorului de tabel. Apăsați „q” pentru a ieși din editorul de tabel,
și îți vei vedea coloana la sfârșitul tabelului.

VARIABIL SETURI


Seturile de variabile sunt folosite în modul „S: Variables & Status” pentru a defini mai ușor ce
variabilele pe care doriți să le monitorizați. În culise, acestea sunt compilate într-o listă de
expresii și apoi într-o listă de coloane, astfel încât acestea să poată fi tratate la fel ca coloanele din oricare
alt tabel, în ceea ce privește extragerea și transformările datelor. Totuși, ești protejat
de la detaliile plictisitoare printr-o sintaxă care ar trebui să ți se pară foarte naturală: un SQL SELECT
listă.

Sursa de date pentru seturile de variabile, și într-adevăr întregul mod S, este combinația de
ARAȚI STARE, ARAȚI VARIABILELE și ARAȚI STARE INNODB. Imaginează-ți că ai avut o masă uriașă
cu o coloană pe variabilă returnată din acele instrucțiuni. Aceasta este sursa de date pentru
seturi variabile. Acum puteți interoga această sursă de date exact așa cum v-ați aștepta. De exemplu:

Întrebări, Uptime, Întrebări/Uptime ca QPS

În culise, innotop va împărți acel set de variabile în trei expresii, compilați
le și transformați-le într-o definiție de tabel, apoi extrageți ca de obicei. Aceasta devine un
„set de variabile” sau o „listă de variabile pe care doriți să le monitorizați”.

innotop vă permite să denumiți și să salvați seturile de variabile și să le scrieți în configurație
fişier. Puteți alege ce set de variabile doriți să vedeți cu tasta „c” sau activați
seturile următoare și anterioare cu tastele „>” și ​​„<”. Există multe seturi de variabile încorporate
de asemenea, ceea ce ar trebui să vă ofere un început bun pentru a vă crea propriul dvs. Apăsați „e” pentru a edita
setul de variabile curent sau doar pentru a vedea cum este definit. Pentru a crea unul nou, trebuie doar să apăsați
„c” și tastați-i numele.

Poate doriți să utilizați unele dintre funcțiile enumerate în „TRANSFORMĂRI” pentru a ajuta la formatarea fișierului
rezultate. În special, „set_precision” este adesea util pentru a vă limita numărul de cifre
vedea. Extinzând exemplul de mai sus, iată cum:

Întrebări, Uptime, set_precision(Questions/Uptime) ca QPS

De fapt, asta mai are nevoie de puțină muncă. Dacă „intervalul” tău este mai mic de unu
în al doilea rând, este posibil să împărțiți la zero, deoarece Uptime este incremental în acest mod prin
Mod implicit. În schimb, utilizați Uptime_hires:

Întrebări, Uptime, set_precision(Questions/Uptime_hires) ca QPS

Acest exemplu este simplu, dar arată cât de ușor este să alegeți ce variabile doriți
monitor.

PLUGINS


innotop are un mecanism de plugin simplu, dar puternic, prin care îl puteți extinde sau modifica
funcționalitatea existentă și adăugați o nouă funcționalitate. Funcționalitatea pluginului innotop este
bazat pe evenimente: pluginurile se înregistrează pentru a fi apelate atunci când au loc evenimente. Apoi au
o șansă de a influența evenimentul.

Un plugin innotop este un modul Perl plasat în directorul „plugin_dir” al innotop. Pe UNIX
sisteme, puteți plasa o legătură simbolică către modul în loc să puneți fișierul propriu-zis
Acolo. innotop descoperă automat fișierul. Dacă există o intrare corespunzătoare în
secțiunea fișierului de configurare „plugins”, innotop încarcă și activează pluginul.

Modulul trebuie să se conformeze cu interfața pluginului innotop. În plus, codul sursă al
modulul trebuie scris în așa fel încât innotop să poată inspecta fișierul și determina
numele și descrierea pachetului.

Pachet Sursă Convenție
innotop inspectează sursa modulului plugin pentru a determina numele pachetului Perl. Se pare
pentru o linie de forma „pachet Foo;” iar dacă este găsit, consideră că numele pachetului pluginului este
fi Foo. Desigur, numele pachetului poate fi un nume valid de pachet Perl, cu dublu
punct și virgulă și așa mai departe.

De asemenea, caută o descriere în codul sursă, pentru a face editorul de plugin mai uman.
prietenos. Descrierea este o linie de comentariu sub forma „# description: Foo”, unde „Foo”
este textul pe care innotop îl va considera a fi descrierea pluginului.

Plugin interfaţă
Interfața pluginului innotop este destul de simplă: innotop se așteaptă ca pluginul să fie un obiect-
modul orientat pe care poate apela anumite metode. Metodele sunt

nou(%variabile)
Acesta este constructorul pluginului. I se trece un hash de variabile ale lui innotop, care
poate manipula (vezi „Variabilele pluginului”). Trebuie să returneze o referință la nou
obiect plugin creat.

În timpul construcției, innotop a încărcat doar configurația generală și a creat
variabilele încorporate implicite cu conținutul lor implicit (ceea ce este destul de mult).
Prin urmare, starea programului este exact ca în codul sursă innotop, plus
variabilele de configurare din secțiunea „general” din fișierul de configurare.

Dacă pluginul tău manipulează variabilele, schimbă datele globale, care sunt partajate
de innotop și toate pluginurile. Pluginurile sunt încărcate în ordinea în care sunt listate în
fișier de configurare. Pluginul dvs. se poate încărca înainte sau după un alt plugin, deci există un
potențial de conflict sau interacțiune între pluginuri dacă modifică alte date
pluginurile folosesc sau modifică.

register_for_events()
Această metodă trebuie să returneze o listă de evenimente de care este interesat pluginul, dacă există.
Consultați „Evenimente plugin” pentru evenimentele definite. Dacă pluginul returnează un eveniment care nu este
definit, evenimentul este ignorat.

gestionari de evenimente
Pluginul trebuie să implementeze o metodă numită la fel ca fiecare eveniment pentru care are
înregistrat. Cu alte cuvinte, dacă pluginul returnează qw(foo bar) de la
register_for_events(), trebuie să aibă foo() și bar() metode. Aceste metode sunt
apeluri inverse pentru evenimente. Consultați „Evenimente cu pluginuri” pentru mai multe detalii despre fiecare eveniment.

Plugin Variabile
Constructorului pluginului i se trece un hash de variabile innotop, pe care le poate manipula.
Este probabil o idee bună dacă obiectul plugin salvează o copie a acestuia pentru o utilizare ulterioară. The
variabilele sunt definite în variabila innotop %pluggable_vars și sunt după cum urmează:

action_for
Un hashef de mapări cheie. Acestea sunt tastele rapide globale ale innotop.

agg_funcs
Un hashef de funcții care poate fi folosit pentru grupare. Vezi „GRUPARE”.

config
Hash-ul configurației globale.

Conexiuni
Un hashef de specificații de conectare. Acestea sunt doar specificații despre cum
conectați-vă la un server.

dbhs
Un hashef al conexiunilor la bazele de date ale innotop. Acestea sunt obiecte reale de conexiune DBI.

Filtre
Un hashef de filtre aplicat rândurilor de tabel. Consultați „FILTRE” pentru mai multe.

moduri de
Un hashef de moduri. Consultați „MODURI” pentru mai multe.

server_groups
Un hashef de grupuri de servere. Consultați „GRUPURI DE SERVER”.

tbl_meta
Un hashef de metadate ale tabelului innotop, cu o intrare per tabel (vezi „TABELE” pentru
mai multe informatii).

trans_funcs
Un hashef de funcții de transformare. Vezi „TRANSFORMĂRI”.

var_sets
Un hashef de seturi variabile. Vezi „SETURI VARIABILE”.

Plugin Evenimente
Fiecare eveniment este definit undeva în codul sursă innotop. Când innotop rulează acel cod,
execută funcția de apel invers pentru fiecare plugin care și-a exprimat interesul pentru
eveniment. innotop transmite câteva date pentru fiecare eveniment. Evenimentele sunt definite în
%event_listener_for variabilă și sunt după cum urmează:

extract_values($set, $cur, $pre, $tbl)
Acest eveniment are loc în interiorul funcției care extrage valori dintr-o sursă de date. The
argumentele sunt setul de valori, valorile curente, valorile anterioare și
numele tabelului.

set_to_tbl
Evenimentele sunt definite în multe locuri în această subrutină, care este responsabilă de întoarcere
un arrayref de hashref într-un arrayref de linii care poate fi imprimat pe ecran.
Evenimentele transmit aceleași date: o matrice de rânduri și numele tabelului fiind
creată. Evenimentele sunt set_to_tbl_pre_filter,
set_to_tbl_pre_sort,set_to_tbl_pre_group, set_to_tbl_pre_colorize,
set_to_tbl_pre_transform, set_to_tbl_pre_pivot, set_to_tbl_pre_create,
set_to_tbl_post_create.

draw_screen($linii)
Acest eveniment are loc în interiorul subrutinei care imprimă liniile pe ecran. $linii
este o matrice de șiruri de caractere.

simplu Plugin Exemplu
Cel mai simplu mod de a explica funcționalitatea pluginului este probabil cu un exemplu simplu.
Următorul modul adaugă o coloană la începutul fiecărui tabel și setează valoarea acesteia la
1.

folosiți strict;
utilizați avertismente FATAL => 'toate';

pachet Innotop::Plugin::Exemplu;
# descriere: adaugă o coloană „exemplu” la fiecare tabel

sub nou {
my ( $clasa, %vars ) = @_;
# Stocați referința la variabilele lui innotop în $self
my $self = bless { %vars }, $class;

# Proiectați coloana exemplu
my $col = {
hdr => „Exemplu”,
doar => '',
dec => 0,
num => 1,
label => „Exemplu”,
src => 'exemplu', # Obțineți date din această coloană în sursa de date
tbl => '',
trans => [],
};

# Adăugați coloana la fiecare tabel.
my $tbl_meta = $vars{tbl_meta};
foreach my $tbl (valori %$tbl_meta) {
# Adăugați coloana la lista de coloane definite
$tbl->{cols}->{exemplu} = $col;
# Adăugați coloana la lista de coloane vizibile
unshift @{$tbl->{vizibil}}, „exemplu”;
}

# Asigurați-vă că returnați o referință la obiect.
returnează $self;
}

# Aș dori să fiu sunat când un set de date este redat într-un tabel, vă rog.
sub register_for_events {
meu ( $self ) = @_;
return qw(set_to_tbl_pre_filter);
}

# Această metodă va fi apelată când evenimentul se declanșează.
sub set_to_tbl_pre_filter {
my ( $self, $rows, $tbl ) = @_;
# Setați sursa de date a coloanei exemplu la valoarea 1.
foreach my $row ( @$rows ) {
$rând->{exemplu} = 1;
}
}

1;

Plugin Editor
Editorul de pluginuri vă permite să vizualizați pluginurile innotop descoperite și să le activați sau să le dezactivați
lor. Porniți editorul apăsând pe $ pentru a porni editorul de configurare din orice mod.
Apăsați tasta „p” pentru a porni editorul de pluginuri. Veți vedea o listă de pluginuri innotop
descoperit. Puteți folosi tastele „j” și „k” pentru a muta evidențierea la cea dorită,
apoi apăsați tasta * pentru a comuta între activ sau inactiv. Ieșiți din editor și reporniți innotop
pentru ca schimbările să aibă efect.

SQL DECLARAȚII


innotop folosește un set limitat de instrucțiuni SQL pentru a prelua date din MySQL pentru afișare. The
instrucțiunile sunt personalizate în funcție de versiunea serverului pe care sunt executate;
de exemplu, pe MySQL 5 și mai nou, INNODB_STATUS execută „SHOW ENGINE INNODB STATUS”,
în timp ce în versiunile anterioare execută „SHOW INNODB STATUS”. Declarațiile sunt ca
urmează:

Instrucțiunea SQL a fost executată
=================== ================================
INNODB_STATUS Afișează [MOTORUL] STARE INNODB
KILL_CONNECTION KILL
KILL_QUERY KILL QUERY
OPEN_TABLES AFIȚĂ TABELE DESCHISE
LISTA DE PROCESARE AFIȚĂ LISTA DE PROCESE COMPLETĂ
SHOW_MASTER_LOGS AFIȘAȚI MASTER LOGS
SHOW_MASTER_STATUS AFIȚĂ STARE MASTER
SHOW_SLAVE_STATUS AFIȚĂ STARE SLAVE
SHOW_STATUS SHOW [GLOBAL] STATUS
SHOW_VARIABLES SHOW [GLOBAL] VARIABLES

DATE SURSE


De fiecare dată când innotop extrage valori pentru a crea un tabel (vezi „EXPRESII” și „TABELE”),
face acest lucru dintr-o anumită sursă de date. În mare parte din cauza datelor complexe extrase din
ARAȚI STARE INNODB, acesta este ușor dezordonat. SHOW INNODB STATUS conține un amestec de
valori unice și valori repetate care formează seturi de date imbricate.

Ori de câte ori innotop preia date din MySQL, adaugă doi biți suplimentari la fiecare set: cxn și
Uptime_hires. cxn este numele conexiunii de la care provin datele. Uptime_hires
este o versiune de înaltă rezoluție a variabilei de stare Uptime a serverului, ceea ce este important dacă
setarea ta „interval” este sub secundă.

Iată tipurile de surse de date din care sunt extrase datele:

STATUS_VARIABLES
Aceasta este cea mai largă categorie, în care se încadrează cele mai multe tipuri de date. Începe cu
combinația SHOW STATUS și SHOW VARIABLES, dar pot fi incluse și alte surse
după cum este necesar, de exemplu, AFIȚIȚI STAREA MAESTRU și AFIȚĂ STAREA SCLAV, precum și multe dintre
valorile nerepetate din SHOW INNODB STATUS.

DEADLOCK_LOCKS
Aceste date sunt extrase din lista de tranzacții în ULTIMUL DEBLOCARE DETECTATĂ
secțiunea SHOW INNODB STATUS. Este imbricat două niveluri adânc: tranzacții, apoi
încuietori.

DEADLOCK_TRANSACTIONS
Aceste date provin din lista de tranzacții din secțiunea ULTIMUL DEBLOCARE DETECTATĂ din SHOW
STARE INNODB. Este imbricat la un nivel adânc.

EXPLICAȚI
Aceste date provin din setul de rezultate returnat de EXPLAIN.

INNODB_TRANSACȚII
Aceste date provin din secțiunea TRANZACȚII din SHOW INNODB STATUS.

IO_THREADS
Aceste date sunt din lista de fire din secțiunea FILE I/O din SHOW INNODB
STARE.

INNODB_LOCKS
Aceste date provin din secțiunea TRANZACȚII din SHOW INNODB STATUS și sunt imbricate două
niveluri adânci.

OPEN_TABLES
Aceste date provin din SHOW OPEN TABLES.

LISTĂ DE PROCESE
Aceste date provin din SHOW FULL PROCESSLIST.

OS_WAIT_ARRAY
Aceste date provin din secțiunea SEMAPHORI din SHOW INNODB STATUS și sunt imbricate la un nivel
adânc. Vine din liniile care arată astfel:

--Fiul 1568861104 a așteptat la btr0cur.c linia 424 ....

MySQL PRIVILEGII


· Trebuie să vă conectați la MySQL ca utilizator care are privilegiul SUPER pentru multe dintre ele
funcții.

· Dacă nu aveți privilegiul SUPER, puteți rula în continuare unele funcții, dar nu o veți face
vedeți neapărat aceleași date.

· Aveți nevoie de privilegiul PROCES pentru a vedea lista interogărilor care se execută în mod curent în modul Q.

· Aveți nevoie de privilegii speciale pentru a porni și opri serverele slave.

· Aveți nevoie de privilegii adecvate pentru a crea și a elimina tabelele de blocaj dacă este necesar (a se vedea
„CONEXIUNI LA ​​SERVER”).

SISTEM CERINȚE


Ai nevoie de Perl pentru a rula innotop, desigur. De asemenea, aveți nevoie de câteva module Perl: DBI,
DBD::mysql, Term::ReadKey și Time::HiRes. Acestea ar trebui să fie incluse cu majoritatea Perl
distribuții, dar în cazul în care nu sunt, vă recomand să folosiți versiuni distribuite cu dvs
sistem de operare sau distribuție Perl, nu din CPAN. Termenul::ReadKey are în special
se știe că cauzează probleme dacă este instalat din CPAN.

Dacă aveți Term::ANSICOlor, innotop îl va folosi pentru a formata mai ușor anteturile și
compact. (Sub Microsoft Windows, aveți nevoie și de Win32::Console::ANSI pentru terminal
codurile de formatare care trebuie respectate). Dacă instalați Term::ReadLine, de preferință
Termen::ReadLine::Gnu, veți primi asistență bună de completare automată.

Rulez innotop pe Gentoo GNU/Linux, Debian și Ubuntu și am primit feedback de la oameni
rulează-l cu succes pe Red Hat, CentOS, Solaris și Mac OSX. Nu văd niciun motiv
de ce nu va funcționa pe alte sisteme de operare UNIX, dar nu știu sigur. De asemenea
rulează pe Windows sub ActivePerl fără probleme.

innotop a fost folosit pe versiunile MySQL 3.23.58, 4.0.27, 4.1.0, 4.1.22, 5.0.26, 5.1.15,
și 5.2.3. Dacă nu funcționează corect pentru dvs., aceasta este o eroare care ar trebui raportată.

Utilizați innotop online folosind serviciile onworks.net


Servere și stații de lucru gratuite

Descărcați aplicații Windows și Linux

Comenzi Linux

  • 1
    aarch64-linux-gnu-gnatbind
    aarch64-linux-gnu-gnatbind
    gnat, gnatbind, gnatbl, gnatchop,
    gnatfind, gnathtml, gnatkr, gnatlink,
    gnatls, gnatmake, gnatprep, gnatpsta,
    gnatpsys, gnatxref - cutie de instrumente GNAT
    DESCRIERE: Th...
    Rulați aarch64-linux-gnu-gnatbind
  • 2
    aarch64-linux-gnu-gnatchop-5
    aarch64-linux-gnu-gnatchop-5
    gnat, gnatbind, gnatbl, gnatchop,
    gnatfind, gnathtml, gnatkr, gnatlink,
    gnatls, gnatmake, gnatprep, gnatpsta,
    gnatpsys, gnatxref - cutie de instrumente GNAT
    DESCRIERE: Th...
    Rulați aarch64-linux-gnu-gnatchop-5
  • 3
    cpupower-idle-info
    cpupower-idle-info
    cpupower idle-info - Utilitar pentru
    Preluați informațiile despre kernelul inactiv CPU
    SINTAXĂ: cpupower [ -c cpulist ]
    idle-info [opțiuni] DESCRIERE: Un instrument
    care tipărește p...
    Rulați cpupower-idle-info
  • 4
    cpupower-idle-set
    cpupower-idle-set
    cpupower idle-set - Utilitar pentru setarea procesorului
    opțiunile nucleului specifice stării inactiv
    SINTAXĂ: cpupower [ -c cpulist ]
    idle-info [opțiuni] DESCRIERE: The
    cpupower idle-se...
    Rulați cpupower-idle-set
  • 5
    g.mapsetsgrass
    g.mapsetsgrass
    g.mapsets - Modifică/tipărește cele ale utilizatorului
    calea de căutare a setului de hărți curent. Afectează
    accesul utilizatorului la datele existente sub
    alte seturi de hărți în locația curentă. ...
    Rulați g.mapsetsgrass
  • 6
    g.messagegrass
    g.messagegrass
    g.message - Imprimă un mesaj, avertisment,
    informații despre progres sau eroare fatală în
    Modul GRASS. Acest modul ar trebui utilizat în
    scripturi pentru mesajele transmise utilizatorului.
    KEYWO...
    Rulați g.messagegrass
  • Mai mult »

Ad