vSphere Hosts + NFS server - how to see which host/vm is doing disk IO?

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

james23

Active Member
Nov 18, 2014
441
122
43
52
I have a 4x host vmware vSphere setup (6.5u3) and a physical Freenas 11.2u7 server sharing multiple NFS datastores back to my vSphere/4x hosts.

Ive been trying to figure out a way where i can see:
Either:
#1- which of the 4x hosts is generating disk IO on X nfs Datastore

(or better yet):
#2- which VM is generating the diskIO on a specific NFS shared Datastore (on freenas/freebsd/zfs pool/dataset)

I have SO many metrics im monitoring via Grafana / Graphite and also PRTG, but often i will see alot of load on a freenas pool (which i know is coming from one of the vm hosts / vms as the freenas server is only serving to vmware). But i struggle to ID which VM or even which Host is generating that disk IO load.

If there were a way to see network traffic on Freenas / freebsd BY IP , then i could atleate take care of #1 , and narrow the load source down the which vmware host based upon bandwidth used (as it is only NFS traffic).
(any ideas? - netstat only shows bandwidth usage on the interface level)

the best i have come up with are commands like these, but none of which show me bandwidth or amount of load, from the vmware hosts:
# fstat | grep "nfs\|smb"
# netstat | grep nfs
# lsof | grep nfsd | grep /mnt/

in vSphere if i enable Storage I/O Control (enable statistics collection only) , i do get a bit more data on NFS datastores, so that may be the solution- but im limited by the performance stats gui/graphs in vSphere.
ie:
1604353427515.png

any suggestions? thanks