Performance "statistik" utan PerfStat eller Ops Mgr
PerfStat är ett bra sätt att få lite mycket detaljerade uppgifter från filer när du har en prestanda eller andra problem som du inte riktigt kan sätta fingret på. Du måste ha tillgång till PerfStat Viewer, eller få någon att behandla denna produktion för dig, och sedan måste du trål genom den.
Operations Manager, närmare bestämt Performance Advisor är briljant 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, det är helt nödvändigt!
Men 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 min systemet är upptaget?". Varje gång du kör sysstat, se till att genom det "-s" modifier så att du får en sammanfattning i slutet av produktionen. Om du inte definierar ett antal iterationer (-c <num>), för att sedan ctrl + c bryta ut. "-X" är stor för att ge alla delar av produktionen, men det kan vara lite bred ibland. "-U" är min favorit eftersom den ger dig utnyttjande behandlingen och dessa är den oftast den mest användbara vid felsökning.
De flesta av kolumnerna är ganska självförklarande. CPU% upptagen, NFS, CIFS, HTTP, FCP och iSCSI är alla protokoll verksamhet diskar. Net kB / s in och ut är uppenbara (som referens en enda gigabit-gränssnitt kommer gärna upprätthålla runt 80 MB / s, men kan sträcka till 110/120MB/s). Disk och Tape in & ut. Titta cache ålder när det blir riktigt lågt, men det är bättre mätare för det. Cache träffen är en disk som du vill så nära 100% som möjligt. Ju mer data får läsa från cache desto bättre! CP-typ är Samstämmighet Poäng kommer jag inte gå in på detaljer om vilka 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 tycks skapa viss förvirring. Detta är läsning av den inre livligaste disken i systemet, och inte ett genomsnitt. Denna avläsning kan intressant gå 100% (ungefär som CPU kan också), och detta helt enkelt betyder diskarna gör mer än de borde!
Så sysstat är ett utmärkt sätt att få en hög syn på "Är min systemet är upptaget" och även ger dig en ungefärlig uppfattning om var flaskhalsen är. Om processorn är verkligen hög, men inget annat, då det är detta som håller tillbaka systemet. Om disken utnyttjandet är mycket högt, sedan igen, här är problemet. Men dessa är inte övertygande siffror, och tyder inte direkt på ett skyldige. T.ex. om disken utnyttjande är mycket hög, kan du behöva köra en wafl omfördela som du har lagt till några nya skivor och dessa är inte innehar några uppgifter ännu. Om din processor är mycket hög, kan det vara att ni gör en massa andra behandling som A-SIS och SnapVault, eller det kan vara mycket slumpmässigt IO så CPU är working hårdare på att försöka göra beräkningar kring detta.
Nästa steg kan vara att titta på statit. En "priv uppsättning avancerade" kommando, och inte för fint uppmuntrande, ett bra kommando för att få en ögonblicksbild av detaljer under en period. Helt enkelt köra "statit-b" i början av denna uppföljningsperiod, och sedan "statit-e" på slutet. Se till att logga dina utmatningsfönstret som du får en hel del från statit (mer än standard Windows och Putty buffert kommer att visa). Det finns en hel del statit produktionen, och jag tänker 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 får mig att den verkliga orsaken till denna artikel i första hand. En av mina favorit-kommandon, och verkligen ett ofta förbisett en "stats". Detta har en hel del information när det är hands, i stort sett allt du kan se i Performance Advisor och allt du kan rapportera om i PerfStats finns i statistiken kommandot. Och eventuellt mycket mer! "Info" fungerar mycket likt sysstat i att det rapporter räknare som bygger på iterationer. Om du bara köra det, det ska rapportera vad systemet gör vid den exakta tidpunkten. Om du säger till den att köra var 5 sekund, det ska rapportera vad som hänt under dessa 5 sekunder.
Så först upp, inte bara i och kör "statistik visar" utan att ha några minuter till godo. Utgången är mycket komplett! Först du 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 "statistiken visas ..."
b2net-filer01> statistiken visas objekt
Objekt:
dump
logical_replication_source
logical_replication_destination
vfiler
qtree
sammanlagda
iSCSI
FCP
CIFS
volym
LUN
målet
NFSv3
ifnet
processor
disk
system
b2net-filer01> statistiken visas instanser ifnet
Instanser för objektnamn: ifnet
B2net
Lagring-101
b2net-filer01> statistiken visas räknare ifnet
Räknare för objektnamn: 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 på mig, kan jag fråga alla de nätverk fall jag har setup (2 VIFs, en med ett VLAN), och jag kan se vad mätarna jag kan rapportera om. Så sätter detta tillsammans ...
b2net-filer01> statistik visar ifnet: Förvaring-101: kollisioner
ifnet: Förvaring-101: kollisioner: 0 / s
Great, har min lagring gränssnitt inte något nätverk kollisioner för tiden här har gått! Det är goda nyheter för mig!
Om jag vill köra det här under flera iterationer, kan jag ge den lite fler alternativ. Notera: Att måste gå innan räknaren information!
b2net-filer01> statistik visar-n 5-i en ifnet: Förvaring-101: kollisioner
Exempel kollisioner
/ S
Lagring-101 0
Lagring-101 0
Lagring-101 0
Lagring-101 0
Lagring-101 0
Great, så under en tid av 5 sekunder jag fortfarande inte får kollisioner!
Du kommer att märka från ovan att det finns en hel del prestanda diskar tillgängliga, och inte alla har den mest pratsamma namn. Du kan fråga någon av dessa genom att köra "stats förklara räknare".
b2net-filer01> Statistik förklara räknare ifnet kollisioner
Räknare för objektnamn: ifnet
Namn: kollisioner
Beskrivning: kollisioner per sekund på CSMA gränssnitt
Egenskaper: sats
Enhet: per_sec
Så kan ta ett annat exempel, jag vill titta på latens värdena från min Exchange-systemet ...
b2net-filer01> statistik visar-n 5-i en volym: exch01_db: read_latency volym: exch01_db: write_latency volym: exch01_logs: read_latency volym: exch01_logs: write_latency
Exempel 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 åtta på morgonen, ingen av de säljare är vaken ännu! Kolumnrubrikerna få lite skev, men vi kan se läsa latency i första kolumnen och skriv latency i andra.
En av mina största klagomål om sysstat är vad händer om jag vill behålla denna kör över en tidsperiod och logga produktionen? Tja, kan jag ändra "alternativ autologout" och lämnar min laptop inkopplad, men det är aldrig en bra idé. "Statistik" ger dig möjlighet att röret All statistik utdata direkt till en fil. Strålande nyheter!
b2net-filer01> statistik visar-n 5-i ett-o / etc / stats.txt volym: exch01_db: read_latency volym: exch01_db: write_latency volym: exch01_logs: read_latency volym: exch01_logs: write_latency
b2net-filer01> rdfile / etc / stats.txt
Exempel 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 gratis upp konsolen, så scripting detta från RSH eller SSH kan vara den bästa insats, men var försiktig hur länge du kör iterationer för!
En annan trevlig funktion är att du kan få några förinställningar. Så om du har 4 Exchange-servrar var och en med tre databaser, kan du ladda alla volym: <vol_name>: läs / write_latency kommandon i en fil och utfärda direkt från stats-kommandot. Förinställningarna filer är XML-filer, så de tar en liten tanke i att skriva, men om du har sett XML tidigare, så ä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">
</ Counter>
<counter name="write_latency">
</ Counter>
</ Exempel>
<instance name="exch01_logs">
<counter name="read_latency">
</ Counter>
<counter name="write_latency">
</ Counter>
</ Exempel>
</ Object>
</ Förinställda>
När sparade i / etc / stats / presets som en ". Xml" filen kan jag kalla det direkt från stats-kommandot.
b2net-filer01> statistik visar-p utbyte-i 1-n 5
Exempel 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 detta öppnar upp något ännu bättre. Vi kan nu använda "statistik start" och "stats stopp" för att utlösa denna rapportering och jag få min konsol tillbaka!
b2net-filer01> Statistik start-p utbyte
Stats identifierare namn är "Ind0 × 6920b2f0"
b2net-filer01> statistik visar-jag Ind0 × 6920b2f0
StatisticsID: Ind0 × 6920b2f0
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
b2net-filer01> Statistik enda jag Ind0 × 6920b2f0
StatisticsID: Ind0 × 6920b2f0
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 kraftfullt verkligen!
En sista sak att tillägga, det finns en hel del diskar tillgängliga som standard i normal privilegierade läge, men försök bytte till avancerade, eller till och med diag, och se hur många räknare finns då! Det är överväldigande, men med lite grävande, mycket kraftfull.
En sista sak, kan du använda jokertecken i "statistik visar" befalla, så att dra ut alla mätare för mitt utbyte databas ...
b2net-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 ...
b2net-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: aktie: read_latency: 0ms
Om du har några specifika frågor, eller du vill fråga hur du kan få särskilda krisinsatser information från systemet, gärna skicka mig över en fråga. Hoppas detta är till nytta för alla!
Lämna en kommentar
Inga trackback ännu.










































14:06 den 1 april 2009
Statistik är ett bra kommando att använda för insamling av data för långsiktig trend för (om dessa uppgifter inte är utsatt i SNMP MIB) - t.ex. per datamängden resultat inte är tillgängliga via SNMP MIB - jag har en bloggpost om hur jag samlar det och ge några exempel grafer på http://aditya.grot.org/2009/02/netapp-ontap-per-volume-statistics.html
05:59 den 9 juli, 2009
Några bra verktyg för att omsätta resultaten från "statistik" är tillgängliga på NetApp gemenskaperna - http://communities.netapp.com/docs/DOC-2092