From: JeanDagenais2 <sig...@hy...> - 2010-11-17 07:16:35
|
Hello, I need to monitor the disk IO statistics of NFS drives on Solaris/SPARC. Sigar is able to do it, but I need to provide the device name, e.g. nfs1 instead of the mount point. The question is: [b]Is there an easy way to map the nfs mount points (e.g. server0123:/remote_data1) to a device name (e.g. nfs5)?[/b] This is how the output of the SIGAR API calls looks like: For a local disk: fslist[i].getDirName() /local_data1 fslist[i].getDevName() /dev/dsk/c3t2d0s5 fileSystemUsage.toString() {DiskQueue=0.0, DiskReadBytes=183227405312, DiskWriteBytes=359966466048, Free=20722965, DiskWrites=5573518, UsePercent=0.87, DiskReads=28092646, Files=16889600, Used=119656085, Avail=19319175, FreeFiles=16889584, DiskServiceTime=0.0, Total=140379050} fileSystemUsage.getFiles() 16889600 fileSystemUsage.getFreeFiles() 16889584 fileSystemUsage.getAvail() 19319175 fileSystemUsage.getFree() 20722965 fileSystemUsage.getTotal() 140379050 fileSystemUsage.getUsed() 119656085 fileSystemUsage.getUsePercent() 87 fileSystemUsage.getDiskReadBytes() 183227405312 fileSystemUsage.getDiskWriteBytes() 359966466048 fileSystemUsage.getReads() 28092646 fileSystemUsage.getWrites() 5573518 fileSystemUsage.getDiskQueue() 0.0 fileSystemUsage.getDiskServiceTime() 0.0 For a remote "NFS" disk: fslist[i].getDirName() /remote_data1 fslist[i].getDevName() server0123:/remote_data1 fileSystemUsage.toString() {Files=16889600, Used=119656085, Avail=19319175, DiskQueue=-1.0, FreeFiles=16889584, DiskServiceTime=-1.0, Free=20722965, Total=140379050, UsePercent=0.87} fileSystemUsage.getFiles() 16889600 fileSystemUsage.getFreeFiles() 16889584 fileSystemUsage.getAvail() 19319175 fileSystemUsage.getFree() 20722965 fileSystemUsage.getTotal() 140379050 fileSystemUsage.getUsed() 119656085 fileSystemUsage.getUsePercent() 87 In order to get the Reads/Writes, etc, I need to use this call and specify the nfs device to Sigar. diskUsage = sigar.getDiskUsage("nfs5"); diskUsage.toString() {Writes=0, WriteBytes=0, ServiceTime=0.7298743809250833, ReadBytes=4555014496, Queue=1.503356652653156E-10, Reads=139553} diskUsage.getReadBytes() 4555014496 diskUsage.getWriteBytes() 0 diskUsage.getReads() 139553 diskUsage.getWrites() 0 diskUsage.getServiceTime() 0.7298743809250833 Right now, I am prototyping using iostat -xpI and iostat -xpnI (running them as Runtime.getRuntime().exec to build the mapping, so I can send the right nfs.... name for the remote disk to Sigar. I would appreciate an easier way to do it. Thanks very much for your help! Jean |