Ytelse "Statistikk" uten PerfStat eller Ops Mgr
PerfStat er en fin måte å få litt ganske detaljert informasjon om resultater ut av Filer når du har en ytelse eller andre problemer som du ikke helt kan sette fingeren på. Du må ha tilgang til PerfStat Viewer, eller få noen til å behandle denne utgang for deg, og da trenger du å tråle gjennom den.
Operations Manager, og mer spesifikt Ytelse Advisor er strålende og 99% av tiden gir deg tellerne du trenger for å diagnostisere problemet. Når du har funnet din vei rundt det, er det helt uunnværlig!
Men hva om du ikke har Operations Manager, eller du bare ønsker å raskt trekke ut informasjon på ett område av systemet?
Første tingene du ønsker å se på sysstat. Alles beste venn og flott måte å se "Er systemet mitt opptatt?". Når du kjører sysstat, sørg for å gjennom det "-s" modifier slik at du får en oppsummering på slutten av produksjonen. Hvis du ikke definerer en rekke gjentakelser (-c <num>), deretter ctrl + c for å bryte ut. "-X" er stor for å gi alle deler av produksjonen, men det kan være litt bredt ganger. "-U" er min favoritt som det gir deg utnyttelsesgrad målinger, og disse det vanligvis den mest nyttig når feilsøking.
De fleste søylene er ganske selvforklarende. CPU er% opptatt, NFS, CIFS, HTTP, FCP og iSCSI er alle protokoller operasjoner tellere. Netto kB / s inn og ut er åpenbare (for referanse ett gigabit-grensesnitt vil gjerne opprettholde rundt 80MB / s, men kan strekke til 110/120MB/s). Disk og Tape In & Out. Se cache alder da det blir virkelig lav, men det er bedre tellere for det. Cache hit er en teller du vil så nær 100% som mulig. Jo mer data skal gifte lest fra cache, jo bedre! CP Type er konsistens Points, vil jeg ikke gå i detalj på hva disse er, det er en veldig god KB artikkel om dette allerede (https://now.netapp.com/Knowledgebase/solutionarea.asp?id=kb23471) . Og til slutt Disk Utnyttelse som synes å føre til noe forvirring. Dette er lesning fra den eneste travleste disken i systemet, og ikke et gjennomsnitt. Dette lesing kan Interessant gå ca 100% (mye som CPU kan også), og dette betyr bare diskene gjør mer enn de burde!
Så sysstat er en fin måte å få et høyt nivå utsikt over "Er mitt system opptatt", og også gir deg en viss idé om hvor flaskehalsen er. Hvis CPU er veldig høy, men ingenting annet, så dette er hva som holder tilbake systemet. Hvis disken utnyttelsen er svært høy, så igjen, her er problemet. Men dette er ikke avgjørende tall, og ikke peker direkte mot en gjerningsmann. For eksempel hvis disken utnyttelsen er svært høy, må du kanskje kjøre en wafl omfordele som du har lagt noen nye disker og disse er ikke å holde noen data enda. Hvis CPU er svært høy, kan det være at du gjør mye annen behandling som A-SIS og SnapVault, eller det kan være svært tilfeldig IO slik at CPU jobber hardere på å prøve å gjøre beregninger rundt dette.
Det neste steget kan være å se på statit. En "priv satt avansert" kommando, og ikke for finte hearted, en stor kommando for å få et øyeblikksbilde av detaljer over en periode. Bare kjør "statit-b" i starten av overvåkingen periode, og deretter "statit-e" på slutten. Sørg for å logge din utgang vindu som du får mye fra statit (mer enn standard Windows og Putty buffer vil vise). Det er mye statit utgang, og jeg vil ikke gå inn i for mye detalj i det hele her (men kanskje en annen dag). Det meste er ganske selvforklarende egentlig.
Dette bringer meg inn på den egentlige grunnen til denne artikkelen i første omgang. En av mine favoritt kommandoer, og absolutt en stor grad oversett en "statistikk". Dette har mye informasjon på sine fingertupper, stort sett alt du kan se fra i Performance Advisor og alt du kan rapportere om i PerfStats er tilgjengelig i statistikken kommandoen. Og muligens en mye mer! "Statistikk" fungerer veldig lik sysstat i at det rapporterer tellere basert på iterasjoner. Hvis du bare å kjøre den, vil den rapportere hva systemet gjør nøyaktig på det tidspunktet. Hvis du forteller det til å kjøre hvert 5 sekund, det vil rapportere hva som skjedde over disse 5 sekunder.
Så først opp, ikke bare i og kjøre "stats show" uten å ha noen minutter til overs. Utgangen er meget komplett! Først du ønsker å se hva tellere er tilgjengelige. Stats er delt inn i "objekter", "forekomster" og "Tellere". For å vise hver, kan vi bruke "stats liste ..."
filer01> stats liste objekter
Objekter:
dumpe
logical_replication_source
logical_replication_destination
vfiler
qtree
aggregert
iSCSI
FCP
CIFS
volum
LUN
mål
nfsv3
ifnet
prosessor
disk
system
filer01> stats liste tilfeller ifnet
Forekomster for objekt navn: ifnet
B2net
Lagring-101
filer01> stats liste tellere ifnet
Tellere for objekt navn: ifnet
recv_packets
recv_errors
send_packets
send_errors
kollisjoner
recv_data
send_data
recv_mcasts
send_mcasts
recv_drop_packets
Som et eksempel ovenfor, kan jeg vise alle de objektene som er tilgjengelige for meg, kan jeg spørre alle nettverk forekomstene jeg har oppsett (2 VIFs, en med en VLAN), og jeg kan se hva skranker jeg kan rapportere om. Så sette dette sammen ...
filer01> statistikk Vis ifnet: Oppbevaring-101: kollisjoner
ifnet: Lagring-101: kollisjoner: 0 / s
Flott, ikke mitt lagring grensesnittet ikke har noen nettverk kollisjoner for perioden dette har kjørt! Det er gode nyheter for meg!
Hvis jeg ønsker å kjøre dette over flere gjentakelser, kan jeg mate det noen flere alternativer. Merk: Alternativene må gå før telleren informasjon!
filer01> stats show-n 5-i en ifnet: Lagring-101: kollisjoner
Eksempler kollisjoner
/ S
Lagring-101 0
Lagring-101 0
Lagring-101 0
Lagring-101 0
Lagring-101 0
Flott, så over en periode på 5 sekunder er jeg fortsatt ikke får kollisjoner!
Du vil merke ovenfra at det er mange av ytelse tellere tilgjengelige, og ikke alle av dem har de mest detaljerte navn. Du kan spørre hvilken som helst av disse ved å kjøre "Statistikk forklarer tellere".
filer01> stats forklarer tellere ifnet kollisjoner
Tellere for objekt navn: ifnet
Navn: kollisjoner
Beskrivelse: Kollisjoner per sekund på CSMA grensesnitt
Egenskaper: rente
Enhet: per_sec
Så la oss ta et annet eksempel, ønsker jeg å se på ventetid målingene på min Exchange-systemet ...
filer01> stats show-n 5-i ett volum: exch01_db: read_latency volum: exch01_db: write_latency volum: exch01_logs: read_latency volum: exch01_logs: write_latency
Instance read_latency write_latenc
ms ms
exch01_db 0 0
exch01_logs 0 0
exch01_db 0 0
exch01_logs 0 0
exch01_db 0 0
exch01_logs 0 0
exch01_db 0 0
exch01_logs 0 0
exch01_db 0 0
exch01_logs 0 0
Det er åtte om morgenen, er ingen av salgsteamet våken ennå! Kolonneoverskriftene få litt skjev, men vi kan se lese latens i den første kolonnen, og skriv latens i andre.
En av mine største klager sysstat er hva som skjer hvis jeg vil beholde dette kjører over en periode og logge utgang? Vel, jeg kan endre "alternativer autologout" og la min laptop koblet til, men det er aldri en god idé. "Statistikk" gir deg muligheten til røret all statistikk utgang direkte til en fil. Brilliant nyheter!
filer01> stats show-n 5-i ett-o / etc / stats.txt volum: exch01_db: read_latency volum: exch01_db: write_latency volum: exch01_logs: read_latency volum: exch01_logs: write_latency
filer01> rdfile / etc / stats.txt
Instance read_latency write_latenc
ms ms
exch01_db 0 16.00
exch01_logs 0 0
exch01_db 0 0
exch01_logs 0 0
exch01_db 0 8,00
exch01_logs 0 0
exch01_db 0 0
exch01_logs 0 0
exch01_db 0 1,00
exch01_logs 0 0
Dessverre er dette ikke gratis opp konsollen, så det kan hende skripting dette fra RSH eller SSH være det beste alternativet, men vær forsiktig hvor lenge du kjører iterasjoner for!
En annen fin funksjon er at du kan ha noen forhåndsinnstillinger. Så hvis du har 4 Exchange-servere hver med 3 databaser, så kan du laste all volum: <vol_name>: les / write_latency kommandoer i en fil og utstede dette direkte fra statistikken kommandoen. Forhåndsinnstillingene filene er XML-filer, så de tar en liten tanke i skriveprosessen, men hvis du har sett XML før, så det er ikke så vanskelig.
Min XML-fil ser slik ut ...
<? Xml VERSION = "1.0">
<preset>
<object name="volume">
<instance name="exch01_db">
<counter name="read_latency">
</ Teller>
<counter name="write_latency">
</ Teller>
</ Eksempel>
<instance name="exch01_logs">
<counter name="read_latency">
</ Teller>
<counter name="write_latency">
</ Teller>
</ Eksempel>
</ Object>
</ Forhåndsinnstilt>
Når du har lagret innenfor / etc / stats / presets som en ". Xml"-fil, kan jeg kalle det direkte fra statistikken kommandoen.
filer01> stats show-p utveksling-i ett-n 5
Instance read_latency write_latenc
ms ms
exch01_db 0 0
exch01_logs 0 0
exch01_db 0 0
exch01_logs 0 0
exch01_db 0 0,13
exch01_logs 0 0,12
exch01_db 0 0,00
exch01_logs 0 0,00
exch01_db 0 0
exch01_logs 0 0
Mulighetene er enorme for dette, men dette åpner opp noe enda bedre. Vi kan nå bruke "statistikk start" og "statistikk stopp" for å utløse denne rapporteringen, og jeg får min konsoll tilbake!
filer01> stats start-p utveksling
Stats identifikator heter 'Ind0x6920b2f0'
filer01> stats show-Jeg Ind0x6920b2f0
StatisticsID: Ind0x6920b2f0
volum: exch01_db: read_latency: 0ms
volum: exch01_db: write_latency: 5.14ms
volum: exch01_logs: read_latency: 0ms
volum: exch01_logs: write_latency: 0.00ms
filer01> stats stop-I Ind0x6920b2f0
StatisticsID: Ind0x6920b2f0
volum: exch01_db: read_latency: 0ms
volum: exch01_db: write_latency: 5.36ms
volum: exch01_logs: read_latency: 0ms
volum: exch01_logs: write_latency: 0.00ms
Forhåpentligvis begynner å innse hvorfor jeg liker denne kommandoen, og hvorfor mulighetene for å bruke denne er enorm, og at det er svært kraftig indeed!
En siste ting å legge til, det er mange av tellere tilgjengelig som standard i normal priviligert modus, men prøv byttet til avansert, eller diagnose, og se hvor mange tellere er tilgjengelige da! Dette er overveldende, men med litt graving, svært kraftig.
En siste ting, kan du bruke jokertegn i "stats show"-kommandoen, så å trekke ut alle tellere for mitt utvekslingsår database ...
filer01> statistikk Vis volum: exch01_db: *
volum: exch01_db: avg_latency: 0.00ms
volum: exch01_db: total_ops: 3 / s
volum: exch01_db: read_data: 0B / s
volum: exch01_db: read_latency: 0ms
volum: exch01_db: read_ops: 0 / s
volum: exch01_db: write_data: 12288b / s
volum: exch01_db: write_latency: 0.00ms
volum: exch01_db: write_ops: 3 / s
volum: exch01_db: other_latency: 0ms
volum: exch01_db: other_ops: 0 / s
Eller for å vise alle read_latency for alle mine volumer ...
filer01> statistikk Vis volum: *: read_latency
volum: vol0: read_latency: 0ms
volum: exch01_db: read_latency: 0ms
volum: hjemme: read_latency: 0ms
volum: backup: read_latency: 0ms
volum: share: read_latency: 0ms
Hvis du har noen konkrete spørsmål, eller ønsker du å spørre hvordan du får spesifikk telleren informasjon fra systemet, gjerne sende meg over et spørsmål. Håper dette er nyttig for alle!










































stats er en stor kommando å bruke for å samle inn data for langsiktig trend også (hvis samme data ikke blir eksponert i SNMP MIB) - for eksempel per volum ytelse data er ikke tilgjengelig via SNMP MIB - Jeg har en bloggpost om hvordan jeg samler det, og gi noen eksempler på grafer på http://aditya.grot.org/2009/02/netapp-ontap-per-volume-statistics.html
Noen gode verktøy tilgjengelig for å oversette utgang fra "statistikk" tilgjengelig på NetApp Communities - http://communities.netapp.com/docs/DOC-2092
flott innlegg Chris, meget informativ og absolutt ikke noe som er dekket i noen av de 'grunnleggende' Choice docs - eller til og med de tekniske rapportene jeg har lest så langt.