Server_stats is a CLI based real time performance monitoring tool from EMC for the Celerra and VNX file. This post is meant to give a quick overview of the server_stats command with some samples on using it in a scheduled cron job. If you’re looking to dive into using the server_stats feature, I’d suggest using the online manual pages (man server_stats) to get a good idea of all the features and reviewing the “Managing Statistics for VNX” Guide from EMC here: http://corpusweb130.emc.com/upd_prod_VNX/UPDFinalPDF/en/Statistics.pdf.
I don’t personally use it so I can’t explain how to set it up, but there is an opensource tool that you can use to push server_stats data to graphite called vnx2graphite. You can get it here: http://www.findbestopensource.com/product/fatz-vnx2graphite. You can download Graphite here: http://graphite.wikidot.com/.
Here is the command line syntax:
server_stats <movername>
-list
| -info [-all|<statpath_name>[,...]]
| -service { -start [-port <port_number>]
| -stop
| -delete
| -status }
| -monitor -action {status|enable|disable}
|[
[{ -monitor {statpath_name|statgroup_name}[,...]
| -monitor {statpath_name|statgroup_name}
[-sort <field_name>]
[-order {asc|desc}]
[-lines <lines_of_output>]
}…]
[-count <count>]
[-interval <seconds>]
[-terminationsummary {no|yes|only}]
[-format {text [-titles {never|once|<repeat_frequency>}]|csv}]
[-type {rate|diff|accu}]
[-file <output_filepath> [-overwrite]]
[-noresolve]
]
Here’s an explanation of a few of the useful table options and what to look for:
Syntax: server_stats server_2 -i <interval in sec> -c <# of counts> -table <stat>
table cifs
-Look at uSec/call. The output is in microseconds, divide by 1000 to convert to milliseconds. This tells you how long it takes the celerra to perform specific CIFS operations.
table dvol
-This is for disk stats. It shows the write distribution across all volumes. Look for IO balance across resources.
table fsvol
-Use this to check filesystem IO. You’ll be able to monitor which file systems are getting all of the IO with this table.
Start with an interval of 1 first to look for spikes or bursts and then increase it incrementally (10 seconds, 30 seconds, 1 minute, 5 minutes, etc). You can also use Celerra monitor to get Clariion stats. Look at queueing, cache flushes, etc. Writes should be through to cache on the Clariion, and unless your write cache is filling up they should be faster than reads.
Here are some sample commands and what they do:
server_stats server_2 -table fsvol -interval 1 -count 10
-This correlates the filesystem to the meta-volumes and shows the % contribution of write requests for each meta-volume (FS Write Reqs %).
server_stats server_2 -table net -interval 1 -count 10
-This shows Network in (KiB/s) / Network In (Pkts/s) to figure out the packet size. Do this for in and for out to verify the standard MTU size.
server_stats server_2 -summary nfs,cifs -interval 1 -count 10
-This will give a summary of performance stats for nfs and cifs.
Here are some additional sample commands, and how you can add to your crontab to automatically collect performance data:
Collect CIFS and NFS data every 5 minutes:
*/5 * * * * /nas/bin/server_stats server_2 -monitor cifs.smb1,cifs.smb2,nfs.v2,nfs.v3,nfs.v4,cifs.global,nfs.basic -format csv -terminationsummary no -i 5 -c 60 -type accu -file “/nas/quota/slot_2/perfstats/data/server_2/server_2_`date ‘+\%FT\%T’|sed s/://g`” > /dev/null
In the command above the -type accu option tells the command to accumulates statistics upon each capture rather than starting back at a baseline of zero. You can also do ‘diff’ to capture the difference from interval to interval.
Collect diskVol performance stats every 5 minutes:
*/5 * * * * /nas/bin/server_stats server_2 -monitor diskVolumes-std -i 5 -c 60 -file “/nas/quota/slot_2/perfstats/data/server_2/server_2_`date ‘+\%FT\%T’|sed s/://g`” > /dev/null
Collect top_talkers data every 5 minutes:
*/5 * * * * /nas/bin/server_stats server_2 -monitor nfs.client -i 5 -c 60 -file “/nas/quota/slot_2/perfstats/data/server_2/server_2_`date ‘+\%FT\%T’|sed s/://g`” > /dev/null
Below are some useful nfs and cifs stats that you can monitor (pulled from DART 8.1.2-51). For a full list, run the command server_stats server_2 -i.
cifs.global.basic.totalCalls,cifs.global.basic.reads,cifs.global.basic.readBytes,cifs.global.basic.readAvgSize,cifs.global.basic.writes,cifs.global.basic.writeBytes,
cifs.global.basic.writeAvgSize,cifs.global.usage.currentConnections,cifs.global.usage.currentOpenFiles
nfs.basic,nfs.client,nfs.currentThreads,nfs.export,nfs.filesystem,nfs.group,nfs.maxUsedThreads,nfs.totalCalls,nfs.user,nfs.v2,nfs.v3,nfs.v4,nfs.vdm