1 Reply Latest reply: Feb 20, 2012 10:37 AM by Mike Gerdts-Oracle RSS

    How do I figure out which disk in my ZFS pool is the slowest?

    918533
      In contravention to all advice, I built my home backup server using whatever hard drives were available at the time. As a result I have a completely heterogeneous ZFS system as shown below.

      I now have some spare money to upgrade the system, I am wondering how to determine which disks are the slowest performers and therefore where best to spend my meagre resources.

      Everything I can find about ZFS reports statistics at the mirror level. I know my mirrors have some fast disks and some slow ones. Short of pulling each one and plugging it into a Linux system and running "hdparm -tT", is there any Solaris 11 command which will tell me the individual performance of each drive?

      [Background - I started out as a C programmer and sysadmin on SunOS 4.1 20 years ago; now freshly back with Solaris after a 10 year experiment with Linux, and only because of the data security which ZFS offers.]

      root@proliant1:~# zpool status
      pool: tank
      state: ONLINE
      scan: scrub repaired 0 in 14h33m with 0 errors on Wed Feb 1 15:33:49 2012
      config:

      NAME STATE READ WRITE CKSUM
      tank ONLINE 0 0 0
      mirror-0 ONLINE 0 0 0
      c7t1d0 ONLINE 0 0 0
      c7t2d0 ONLINE 0 0 0
      mirror-1 ONLINE 0 0 0
      c11t0d0 ONLINE 0 0 0
      c12t0d0 ONLINE 0 0 0
      mirror-2 ONLINE 0 0 0
      c15t0d0 ONLINE 0 0 0
      c7t0d0 ONLINE 0 0 0
      c7t5d0 ONLINE 0 0 0
      cache
      c8t0d0s0 ONLINE 0 0 0
      c13t0d0 ONLINE 0 0 0
      spares
      c7t3d0 AVAIL

      errors: No known data errors

      pool: tpool
      state: ONLINE
      scan: scrub repaired 0 in 0h24m with 0 errors on Tue Feb 14 23:24:26 2012
      config:

      NAME STATE READ WRITE CKSUM
      tpool ONLINE 0 0 0
      c16t0d0s0 ONLINE 0 0 0

      errors: No known data errors


      root@proliant1:~# zpool iostat -v tank 30
      capacity operations bandwidth
      pool alloc free read write read write
      ----------- ----- ----- ----- ----- ----- -----
      tank 1.21T 1.29T 10 115 736K 504K
      mirror 677G 1.15T 4 38 382K 214K
      c7t1d0 - - 3 14 361K 215K
      c7t2d0 - - 3 14 361K 215K
      mirror 334G 130G 2 38 201K 158K
      c11t0d0 - - 2 9 190K 159K
      c12t0d0 - - 2 9 190K 159K
      mirror 224G 8.08G 2 38 153K 131K
      c15t0d0 - - 1 11 142K 131K
      c7t0d0 - - 1 13 142K 131K
      c7t5d0 - - 1 14 142K 131K
      cache - - - - - -
      c8t0d0s0 1.96G 7.87M 0 0 4.33K 43.8K
      c13t0d0 1.94G 7.98M 0 0 4.05K 43.2K
      ----------- ----- ----- ----- ----- ----- -----

      capacity operations bandwidth
      pool alloc free read write read write
      ----------- ----- ----- ----- ----- ----- -----
      tank 1.21T 1.29T 15 649 225K 2.45M
      mirror 677G 1.15T 6 219 156K 1.13M
      c7t1d0 - - 2 79 65.5K 1.12M
      c7t2d0 - - 3 80 92.0K 1.13M
      mirror 334G 130G 3 215 9.88K 671K
      c11t0d0 - - 2 49 5.59K 674K
      c12t0d0 - - 1 49 4.68K 674K
      mirror 224G 8.08G 5 214 59.0K 683K
      c15t0d0 - - 1 60 9.43K 685K
      c7t0d0 - - 2 76 36.2K 685K
      c7t5d0 - - 1 76 13.6K 685K
      cache - - - - - -
      c8t0d0s0 1.96G 7.98M 3 2 17.2K 42.7K
      c13t0d0 1.94G 7.61M 2 2 15.1K 114K
      ----------- ----- ----- ----- ----- ----- -----