Friday, 19 April 2013

Understanding viostat -adapter vfchost output

 Understanding viostat -adapter vfchost output

The ’viostat  –adapter’ command  expected to find non-zero values for kbps, tps, etc, for each vfchost adapter. However, the values were always zero, no matter how much traffic traversed the adapters.                            
$ viostat -adapter 1 10                                                 
vadapter:                  Kbps      tps     bkread    bkwrtn          
vfchost0                    0.0      0.0        0.0       0.0          
vadapter:                  Kbps      tps     bkread    bkwrtn          
vfchost1                    0.0      0.0        0.0       0.0          
I wondered if this was expected behaviour. Was the output supposed to report the amount of pass-thru traffic per vfchost? In 2011, I posed this question on the IBM developerWorks PowerVM forum regarding this observation. One of the replies stated:

"viostat does not give statistics for NPIV devices. The vfchost adapter is just a passthru, it doesn't know what the commands it gets are."    

I appreciated someone taking the time to answer my question but I was still curious. I tested the same command again (in 2013) on a recent VIOS level (, but I received the same result. It was time to source an official answer on this behavior.

Here is the official response I received from IBM:

1.  FC adapter stats in viostat/iostat do not include NPIV.           
2.  viostat & iostat are an aggregate of all the stats from the underlying disks, which of course NPIV doesn't have.There's really no way for the vfchost adapter to monitor I/O, since it doesn't know what the commands it gets are. He's just a passthru, passing the commands he gets from the client directly to the physical FC adapter.                         

3.  You can run fcstat on the VIOS but that has the same issues/limitations mentioned above.
Intent here was that customers would use tools on the client to monitor this sort of thing.
To summarize the comments from Development:                            
viostat does NOT give statistics for NPIV devices.”

This made sense but I wondered why the tool hadn’t been changed to exclude vfchost adapters from the output (to avoid customer confusion). There's obviously no valid reason to ever display any information for this type of adapter. I also understood that it was expected that I/O would be monitored at the client LPAR level. But I must say that an option for monitoring VFC I/O from a VIO server would be advantageous i.e. a single source view of all I/O activity for all VFC clients; particularly when there are several hundred partitions on a frame.  The response was:

“…the way the vfchost driver currently works is that it calls iostadd to register a dkstat structure, resulting in the adapter being listed when viostat is called.  This is misleading, however, since the vfchost driver does not actually track I/O.  The commands coming from the client partition are simply passed as-is to the physical FC adapter, and we don't know if a particular command is an I/O command or not.  The iostadd call is left over from porting the code from the vscsi driver, and Development agrees it should probably have been removed before shipping the code.                            
There has also been mention of a DCR #MR0413117456 (Title: FC adapter stats in viostat/iostat does not include NPIV) which you can follow-up with Marketing to register your interest/track progress if that is something you're interested in pursuing.”

0 blogger-disqus:

Post a Comment