if using ZFS, is it recommended to use zpool iostat over the normal iostat?I like both of them, but I'd recommend 'zpool iostat -v' because it will also give you per-device statistics through zpool.
Basically what is the different between both?iostat displays statistics for all devices, zpool iostat will only give statistics for devices in a zpool. When you have cache and log devices and mirrors and stuff configured, iostat may not be very easy to read. But iostat has information on service time that zpool iostat does not have
In normal iostat, what is the most valuable info we need to look into to measure the performance? a_svc, b%, w%?I usually look at number of operations (read and write), service time (svc_t) and sometimes the throughbut (kread, kwrite). I don't trust %b or %w because I nerver really understood how they are calculated, I also suspect they may be calculated differently on different platforms (linux and solaris) and I have seen cases where they have just been wrong. So I go by rules of thumb for operations and service times:
where in zpool iostat, what is the most valuable info we need to look into to measure the performance? and how to determine it is slow or fast? since, there are no a_svc, b%, w%??again, reads and writes is usually what I look for.
in the following info in http://docs.oracle.com/cd/E19253-01/819-5461/gammt/index.html?bandwidth is reported in bytes. In this case, zpool iostat was called without a repeat-interval so only the average since system boot is reported. So in this case 786 bytes have been read per second on average since system start. Quite a useless number.
# zpool iostat
capacity operations bandwidth
pool alloc free read write read write
rpool 6.05G 61.9G 0 0 786 107
tank 31.3G 36.7G 4 1 296K 86.1K
what does 786 and 107 for rpool refer to? kilobyte?bytes? bit?
1. The more number of Read Write operation, the number bandwidth will be smaller?no, that will usually be related to each other in a way that both will get bigger. read/write are the number of operations. the number of times that an application (or the OS) asks the disks for something. Bandwidth is the amount of data transferred between the OS (or app) and the disks. Both number of operations (IOPS) and bandwidth (MB/s) have a limit.
But we can't control the number of read write rite?We don't just do these for fun or because we can. IOs usually have a reason. Some app needs access to data that is not in memory. Whenever that happens, we need to read from or write to disk. There is nothing wrong with that. It usually takes a few ms to fulfil each requests. There is also nothing wrong with that. But as the number of requests or bandwidth goes up, this time may increase and that is one of the things we look for and monitor.