dette er en i en serie af artikler om, hvordan man bruger innotop, en Myskl og InnoDB monitor. I denne artikel vil jeg forklare, hvordan innotop kan gøre det meget nemmere at indsamle nyttige oplysninger fra SHOW STATUS
og SHOW VARIABLES
på et sted. Der er tre tilstande i innotop, der gør dette på forskellige måder, så en af dem kan imødekomme dine behov.
introduktion
udgangen af SHOW STATUS
og SHOW VARIABLES
er et af de mest nyttige værktøjer til fejlfinding af en Myskl-server og få en fornemmelse af, hvor godt den kører, hvilken type arbejdsbyrde den er under osv. Hvis du ikke er bekendt med disse, anbefaler jeg, at du læser dem i manualen, før du læser resten af denne artikel. Du får mere ud af artiklen, hvis du forstår, hvilke oplysninger der ligger bag mine eksempler.
den mest grundlæggende metode til at komme til disse variabler er at udstede en SHOW
kommando, men resultatet er ret sikkert at være en informationsoverbelastning, selvom du bruger LIKE
til at begrænse resultaterne. En anden ting, du ofte har brug for at vide, er, hvordan værdierne ændrer sig over tid; hvor mange tabelscanninger sker f. eks. pr. sekund? Det er svært at sammenligne resultater af SHOW
kommandoer hurtigt, men du skal gøre det for at forstå, hvad der sker på serveren.
det klassiske værktøj til dette er Myskls eget mysqladmin
. Du kan køre det med argumenterne -i
og -r
for at fortælle det at fortsætte med at udskrive værdier så ofte og udskrive forskellen fra det sidste sæt værdier, når det gør det. En grundlæggende kommando til at se statusvariabler kan være følgende:
mysqladmin extended -i10 -r
du kan rør det igennem grep
for også at filtrere resultaterne lidt.
der er helt klart meget plads til forbedringer. Jeg har inkluderet tre forskellige måder at se disse oplysninger lettere og fleksibelt på i innotop, og jeg vil forklare dem næste.
metode en: v-tilstand
før vi begynder: Hvis du ikke allerede har, du skal hente og installere innotop, og køre disse eksempler på din egen server. Det er meget mere interessant, når du får at se, hvordan din egen server kører. Og hvis du ikke opgraderes til den nyeste og bedste version af innotop, er det værd at gøre; der er mange flere funktioner i hver nye version. Specifikt vil jeg vise nogle funktioner, der kun er tilgængelige i version 0.1.139.
Okay, videre til de gode ting. Start innotop, og skift til V-tilstand med “V” – tasten. V står for ” variabler og Status.”Det viser en tabel med en række for hver valgt værdi og en kolonne for hvert sæt værdier, du vil se. Værdier kan vælges fra alt, hvad du kan finde i SHOW STATUS
eller SHOW VARIABLES
.
lad mig forklare det lidt mere. Kolonnen længst til venstre viser, hvilke værdier jeg har valgt at vise. Hver række har en værdi. Når du går til højre, ser du værdierne selv. Først ser du de mest aktuelle værdier, derefter dem før det, og så videre—hele vejen indtil den yderste højre kolonne.
der er et par ting at bemærke om denne skærm:
- displayet er trinvist. Det vil sige, Jeg viser ikke de reelle værdier her. Jeg viser forskellen mellem snapshots. Du kan se værdien
Uptime
øges med 60 i hver efterfølgende kolonne. Det er fordi jeg har valgt en søvntid på 60 sekunder mellem snapshots. (Jeg vælger normaltUptime
som den første værdi, så jeg kan se, hvilket tidsinterval der vises). - kolonnen længst til højre er ikke trinvis. Det er fordi det er det tidligste snapshot innotop har i hukommelsen, så der er ikke noget tidligere at trække fra det. Desuden vil du ikke altid vide forskellen mellem værdier. Nogle gange vil du vide selve værdien. Dette giver dig en oprindelig plan, så du kan se både de trinvise og absolutte værdier på samme tid.
- den anden linje i displayet, over værditabellen, viser de aktuelle visningsindstillinger. Du kan se trinvis er tændt, og per sekund gennemsnit er slukket. Du kan skifte dette med tasterne” i “og” a”, så du øjeblikkeligt kan skifte frem og tilbage mellem flere visninger af dataene.
- Langnummervisning er tændt. Du kan slå den til og fra med “l” – tasten (det er en lille “L”) for en mere kompakt skærm.
det er en ret kompakt måde at se på 8 minutters historie for serveren, ville du ikke være enig? Du kan nemt få meget mere information fra denne skærm end med de andre metoder, jeg har diskuteret. Men der er mere!
- jeg inkluderer flere forudindstillede valg af værdier, der skal vises med innotop. Du kan skifte frem og tilbage mellem dem med tasterne “0” til “9”. Der er forudindstillinger for forespørgselscache, tabel-og indeksscanninger, InnoDB-variabler, transaktionsopgørelser og meget mere. Alt i alt er der plads til ti sæt værdier.
- du kan tilpasse hvert sæt med “c” – tasten. Vælg og vælg fra enhver værdi i STATUS og variabler, som jeg sagde. Dette bliver gemt i din konfigurationsfil, så det er der, når du afslutter og genstarter innotop.
- du kan vælge antallet af snapshots, du vil vise, fra 2 til 9, så du kan bestemme, hvor meget historie du vil se på på en skærm.
Metode 2: modelleret efter tload
en anden måde at overvåge disse variabler på er at tegne en graf i stil med tload
. Teorien bag denne tilstand er, at du vælger et par værdier (med “c”-tasten som sædvanlig), og innotop skalerer per sekund gennemsnittet af værdierne mod det maksimale, det nogensinde har set, og brug det til at tegne en smuk graf. Du går ind i Graftilstand med” G ” – tasten.
dette er ikke helt som tload
, fordi grafen løber fra top til bund, ikke fra venstre mod højre. Det udskriver en overskrift med jævne mellemrum, inklusive den “maksimale værdi”, som den skalerer mod.
i praksis har jeg ikke helt fået det rigtigt endnu. Jeg er ikke sikker på, hvordan man skalerer det. Jeg har ingen problemer med at lave matematikken, men skalering mod “den maksimale værdi, der nogensinde er set”, ser ikke ud til at give gode resultater. Nogle gange resulterer det i en flot graf; andre gange ikke. Jeg tænker fortsat, at der skal være en god måde at beregne den faktiske serverbelastning på, så den kan tegnes meningsfuldt, men jeg kan ikke tænke på det. Nogen forslag?
jeg er ikke særlig tilfreds med denne tilstand. Hvis jeg ikke kan finde ud af en måde at gøre det mere nyttigt, kan jeg slippe af med denne funktionalitet, selvom det kun er et par linjer kode.
metode 3: modelleret efter vmstat
min kollega John forventede, at grafen ikke ville være så nyttig, meget til hans kredit, og spurgte mig, om jeg kunne efterligne vmstat
og iostat
i stedet for at tegne en graf. Resultatet er” S ” – tilstand. Det kan udskrive de samme oplysninger som “G” – tilstand, bortset fra at det udskriver værdier i stedet for en graf.
jeg synes, det er mere nyttigt end “G” – tilstand, selvom det er noget overflødigt at “V” – tilstanden jeg demonstrerede ovenfor. Da værdierne er lagt ud på tværs af skærmen, og tiden flyder fra bunden til toppen af skærmen, kan du passe færre værdier på skærmen, men du kan se et længere tidsvindue.
sammenfatning af tilstande
jeg har lige vist dig tre tilstande innotop har til overvågning af status og variabel information fra en Myskl-server:
- “v” mode udskriver en tabel med snapshots, med masser af forskellige muligheder.
- “G” – tilstand forsøger at udskrive en graf, men gør ikke altid et meget godt stykke arbejde.
- “s” – tilstand udskriver noget, der ligner “V” – tilstand, men dataene er lagt anderledes ud.
de tre tilstande er grundlæggende forskellige måder at se på de samme værdier. Der er en vis redundans blandt dem, men fordi det kræver så lidt kode at gøre hver af dem, er jeg ligeglad med redundansen fra et kodende synspunkt. Jeg har ikke noget imod at opretholde tre funktioner med lignende funktionalitet, hvis det giver flere måder at bruge skærmen på.
hvis du har forslag til forbedringer, venter jeg på at høre fra dig :- )
Resume
i denne artikel forklarede jeg den gammeldags måde at overvåge output på SHOW STATUS
og SHOW VARIABLES
og viste dig derefter, hvordan innotop kan gøre dette meget hurtigere og lettere og forhåbentlig give dig nok forskellige synspunkter på de data, som du kan finde en, du kan lide.
Stay tuned for at lære mere om innotop; der er meget mere at fortælle! Du kan abonnere via feeds eller e-mail for at holde dig opdateret.