Performance "stats" utan PerfStat eller Ops Mgr
PerfStat är ett bra sätt att få lite ganska detaljerad resultatinformation ur Filer när du har en föreställning eller annan fråga som du inte riktigt kan sätta fingret på. Du måste ha tillgång till PerfStat Viewer, eller få någon att bearbeta denna utgång för dig, och sedan måste du att gå igenom den.
Operations Manager, och mer specifikt Performance Advisor är lysande och 99% av tiden ger dig räknarna du behöver för att diagnostisera problemet. När du har hittat din väg runt det, är det helt oumbärligt!
Men vad händer om du inte har Operations Manager, eller om du bara snabbt vill dra ut information om en del av systemet?
Första saker du vill titta på sysstat. Allas bästa vän och bra sätt att se "Är mitt system upptaget?". När du kör sysstat, se till att genom det "-s" modifierare så att du får en sammanfattning på slutet av produktionen. Om du inte definierar ett antal iterationer (-c <num>), sedan Ctrl + C för att bryta ut. "-X" är bra för att ge alla delar av produktionen, men det kan vara lite stor ibland. "-U" är min favorit eftersom det ger dig utnyttjande avläsningar och dessa är vanligtvis mest användbara vid felsökning.
De flesta av kolumnerna är ganska självförklarande. CPU är% upptagen, NFS, CIFS, HTTP, FCP och iSCSI är alla protokoll verksamheter räknare. Net kB / s in och ut är uppenbar (för referens ett enda gigabit interface kommer gärna upprätthålla omkring 80 MB / s, men kan sträcka sig för att 110/120MB/s). Disk och Tape in & ut. Titta på cachen ålder då det blir riktigt lågt, men det finns bättre diskar för det. Cache hit är en räknare som du vill så nära 100% som möjligt. Ju mer data att bli läses från cachen desto bättre! CP Typ Konsekvens Points, kommer jag inte gå in på detaljer om vad dessa är, finns det en mycket bra KB artikel om detta redan (https://now.netapp.com/Knowledgebase/solutionarea.asp?id=kb23471) . Och slutligen Disk Utnyttjande som verkar för att orsaka viss förvirring. Detta är den avläsning från den enda mest aktiva disken i systemet, och inte en genomsnittlig. Denna avläsning kan intressant att gå ca 100% (ungefär som CPU kan också), och detta betyder helt enkelt skivorna gör mer än de borde!
Så sysstat är ett bra sätt att få en hög syn på "Är mitt system upptaget" och ger dig en ungefärlig uppfattning om var flaskhalsen är. Om processorn är väldigt hög, men inget annat, då detta är vad som håller tillbaka systemet. Om disken utnyttjande är mycket hög, sedan igen, här är problemet. Men det är inte avgörande siffror och inte pekar direkt på ett skyldige. Till exempel om disk utnyttjande är mycket hög, kan du behöva köra en WAFL omfördela som du har lagt till några nya diskar och dessa inte håller några uppgifter ännu. Om din processor är mycket hög kan det vara så att du gör en hel del annan behandling som A-SIS och SnapVault, eller det kan vara mycket slumpmässigt IO så CPU arbeta hårdare på att försöka göra beräkningar kring detta.
Nästa steg kan vara att titta på statit. En "Priv ange avancerade" kommando, och inte för fint hearted, en stor kommando för att få en ögonblicksbild av detaljer under en period. Bara köra "statit-b" i början av övervaknings-perioden, och sedan "statit-e" på slutet. Se till att logga din produktion fönstret när du får en hel del från statit (mer än standard Windows och Putty bufferten kommer att visa). Det finns en hel del statit produktionen, och jag kommer inte gå in alltför detaljerat i det hela här (men kanske en annan dag). Det mesta är ganska självförklarande egentligen.
Detta leder mig in på den verkliga orsaken till den här artikeln i första hand. En av mina favorit kommandon och säkert en stor del förbisedd ett, "stats". Detta har en hel del information när den är som fingertoppar, i stort sett allt du kan se från i Performance Advisor och allt du kan rapportera på i PerfStats finns i statistiken kommandot. Och eventuellt en mycket mer! "Stats" fungerar mycket likt sysstat att det rapporterar räknare baserade på iterationer. Om du bara kör det, det ska redovisa vad systemet gör vid den exakta tidpunkten. Om du säger att den ska köras var 5 sekunder, kommer det att rapportera vad som hände under dessa 5 sekunder.
Så först upp, inte bara i och köra "stats show" utan att ha några minuter över. Utgången är mycket klar! Först vill se vad räknare finns tillgängliga. Stats är uppdelad i "objekt", "Fall" och "Räknare". För att visa varje, kan vi använda "stats lista ..."
filer01> statistik lista objekt
Objekt:
dumpa
logical_replication_source
logical_replication_destination
vfiler
qtree
aggregat
iscsi
FCP
cifs
volym
lun
Målet
nfsv3
ifnet
Processorn
skiva
Systemet
filer01> statistik lista fall ifnet
Instanser för objektet namn: ifnet
B2net
Förvaring-101
filer01> statistik lista räknare ifnet
Räknare för objektet namn: ifnet
recv_packets
recv_errors
send_packets
send_errors
kollisioner
recv_data
send_data
recv_mcasts
send_mcasts
recv_drop_packets
Som ett exempel ovan kan jag visa alla objekt som finns tillgängliga för mig, kan jag fråga alla nätverk fall jag har setup (2 VIFs, 1 med ett VLAN), och jag kan se vad räknare jag kan rapportera om. Så att sätta detta tillsammans ...
filer01> statistik visar ifnet: Lagring-101: kollisioner
ifnet: Lagring-101: kollisioner: 0 / s
Bra, har jag lagringsgränssnittet några nätverk kollisioner under den period detta har gått! Det är goda nyheter för mig!
Om jag vill köra detta över flera iterationer kan jag mata den några fler alternativ. Obs: Alternativen måste gå innan räknaren information!
filer01> Stats show-n 5-I 1 ifnet: Lagring-101: kollisioner
Exempel kollisioner
/ S
Förvaring-101 0
Förvaring-101 0
Förvaring-101 0
Förvaring-101 0
Förvaring-101 0
Great, så under en period av 5 sekunder jag fortfarande inte får kollisioner!
Du kommer att märka från ovan att det finns en hel del prestanda räknare tillgängliga, och inte alla av dem har de mest mångordiga namn. Du kan söka någon av dessa genom att köra "stats förklarar räknare".
filer01> statistik förklara räknare ifnet kollisioner
Räknare för objektet namn: ifnet
Namn: kollisioner
Beskrivning: kollisioner per sekund på CSMA gränssnitt
Egenskaper: ränta
Enhet: per_sec
Så låt oss ta ett annat exempel, jag vill titta på latens avläsningar på min Exchange-system ...
filer01> Stats show-n 5-I 1 volym: exch01_db: read_latency volym: exch01_db: write_latency volym: exch01_logs: read_latency volym: exch01_logs: write_latency
Exempelvis 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 är 8 på morgonen, är ingen av säljkåren vaken ännu! Kolumnrubrikerna bli lite skev, men vi kan se läsa latens i den första kolumnen och skriv latens i den andra.
En av mina största klagomål sysstat är vad som händer om jag vill behålla denna löper över en tidsperiod och logga ut? Tja, kan jag ändra "alternativ autologout" och lämna min laptop ansluten, men det är aldrig en bra idé. "Stats" ger dig möjlighet att röret all statistik utgång direkt till en fil. Brilliant nyheter!
filer01> Stats show-n 5-i 1-o / etc / stats.txt volym: exch01_db: read_latency volym: exch01_db: write_latency volym: exch01_logs: read_latency volym: exch01_logs: write_latency
filer01> rdfile / etc / stats.txt
Exempelvis 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
Tyvärr inte frigör konsolen, kan det skript detta från RSH eller SSH vara den bästa insats, men var försiktig med hur länge du kör iterationer för!
En annan trevlig funktion är att du kan ha vissa förinställningar. Så om du har 4 Exchange-servrar med vardera 3 databaser kan du ladda alla volymen: <vol_name>: läs / write_latency kommandon i en fil och utfärda det direkt från Stats kommandot. De förinställningar filerna är XML-filer, så att de tar en liten tanke i skrivandet, men om du har sett XML tidigare, då är det inte så knepigt.
Min XML-fil ser ut så här ...
<? Xml version = "1.0"?>
<preset>
<object name="volume">
<instance name="exch01_db">
<counter name="read_latency">
</ Räknare>
<counter name="write_latency">
</ Räknare>
</ Instance>
<instance name="exch01_logs">
<counter name="read_latency">
</ Räknare>
<counter name="write_latency">
</ Räknare>
</ Instance>
</ Object>
</ PRESET>
När sparas i / etc / stats / förinställningar som en ". Xml"-fil, kan jag ringa det direkt från Stats kommandot.
filer01> Stats show-p valuta-i 1-n 5
Exempelvis 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
Möjligheterna är enorma för detta, men det öppnar upp något ännu bättre. Vi kan nu använda "stats start" och "statistik stopp" för att utlösa denna rapportering och jag får min konsol tillbaka!
filer01> Stats start-p utbyte av
Stats identifierare namn är "Ind0x6920b2f0"
filer01> Stats show-I Ind0x6920b2f0
StatisticsID: Ind0x6920b2f0
volym: exch01_db: read_latency: 0ms
volym: exch01_db: write_latency: 5.14ms
volym: exch01_logs: read_latency: 0ms
volym: exch01_logs: write_latency: 0.00ms
filer01> Stats stop-I Ind0x6920b2f0
StatisticsID: Ind0x6920b2f0
volym: exch01_db: read_latency: 0ms
volym: exch01_db: write_latency: 5.36ms
volym: exch01_logs: read_latency: 0ms
volym: exch01_logs: write_latency: 0.00ms
Förhoppningsvis du börjar inse varför jag gillar det här kommandot, och varför möjligheterna att använda detta är enorma, och att det är mycket kraftfull faktiskt!
En sista sak att tillägga, det finns en hel del diskar tillgängliga som standard i normalt privilegierad läge, men försök bytte till avancerad, eller till och med diag och se hur många räknare finns tillgängliga då! Det är överväldigande, men med lite grävande, mycket kraftfull.
En sista sak, kan du använda jokertecken i "stats show" kommandot, så att dra ut alla räknare för mitt utbytesår databasen ...
filer01> statistik visar volym: exch01_db: *
volym: exch01_db: avg_latency: 0.00ms
volym: exch01_db: total_ops: 3 / s
volym: exch01_db: read_data: 0B / s
volym: exch01_db: read_latency: 0ms
volym: exch01_db: read_ops: 0 / s
volym: exch01_db: write_data: 12288b / s
volym: exch01_db: write_latency: 0.00ms
volym: exch01_db: write_ops: 3 / s
volym: exch01_db: other_latency: 0ms
volym: exch01_db: other_ops: 0 / s
Eller för att visa alla read_latency för alla mina volymer ...
filer01> statistik visar volym: *: read_latency
volym: vol0: read_latency: 0ms
volym: exch01_db: read_latency: 0ms
volym: hem: read_latency: 0ms
volym: backup: read_latency: 0ms
volym: Dela: read_latency: 0ms
Om du har några specifika frågor, eller om du vill fråga hur du kan få särskild disk information från systemet, gärna skicka mig över en fråga. Hoppas att detta är till nytta för alla!










































Stats är en stor kommando att använda för insamling av data för långsiktig trend också (om samma data inte exponeras i SNMP MIB) - till exempel per volymdata prestanda är inte tillgänglig via SNMP MIB - Jag har ett blogginlägg om hur jag samlar det och ge några exempel på diagram på http://aditya.grot.org/2009/02/netapp-ontap-per-volume-statistics.html
Några bra verktyg för att översätta utmatningen från "stats" är tillgängliga på NetApp gemenskaperna - http://communities.netapp.com/docs/DOC-2092
stor post Chris, mycket informativ och absolut inte något som är täckt i någon av de så kallade fundamentals Dokument - eller ens de tekniska rapporter som jag har läst hittills.