Performance issues on Solaris:
In the post we are going to see about disk performance issues and how to identify
IO bottle neck.
Generally a problem is identified when an application is not performing as we expected. In larger environments, servers are connected to SAN storage and if there is any issue with storage, it will impact application performance. The most efficiently constructed file system will not perform well if it is implemented on slow hardware. Here we are going to see how to identify the DISK I/O issues and along with some common problems and solutions.
1. I/O bus access: If the bus is busy, the request is queued by the driver. The information is reported by “sar -d” command on avwait column and wait column on “iostat -x” command.
2. Bus transfer time: Arbitration time time to transfer the command (usually ~ 2 ms), data transfer time (in the case of a write).
3. Interrupt time: Time for the completion interrupt to be processed. This is very hard to measure, but high interrupt rates on the CPUs associated with this system board may be an indication of problems.
· If you run iostat command without any interval,it will give the below output but it’s very difficult to find the Disk I/O bottle neck.
bash-3.00# iostat -Cxn extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c0t0d0 0.5 2.3 13.9 13.6 0.0 0.0 0.0 7.3 0 1 c1 0.2 2.1 12.1 10.2 0.0 0.0 0.0 7.8 0 1 c1t0d0 0.0 0.0 0.0 0.3 0.0 0.0 0.0 3.4 0 0 c1t1d0 0.0 0.0 0.0 0.3 0.0 0.0 0.0 0.9 0 0 c1t2d0 0.2 0.0 0.2 0.3 0.0 0.0 0.0 0.1 0 0 c1t3d0 0.1 0.1 0.7 2.5 0.0 0.0 0.1 13.1 0 0 c1t4d0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 fd0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0
extended disk statistics aggregated by controller id.
bash-3.00# iostat -xn 30 extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 fd0 0.2 2.1 11.5 10.2 0.0 0.0 0.0 7.7 0 1 c1t0d0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c0t0d0 0.0 0.0 0.0 0.3 0.0 0.0 0.0 3.4 0 0 c1t1d0 0.0 0.0 0.0 0.2 0.0 0.0 0.0 0.9 0 0 c1t2d0 0.2 0.0 0.2 0.3 0.0 0.0 0.0 0.1 0 0 c1t3d0 0.0 0.0 0.6 2.3 0.0 0.0 0.1 13.1 0 0 c1t4d0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 sfos:vold(pid1358) extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 fd0 0.0 2.0 0.0 8.8 0.0 0.0 0.0 2.2 0 0 c1t0d0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c0t0d0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.8 0 0 c1t1d0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c1t2d0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c1t3d0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c1t4d0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 sfos:vold(pid1358)
bash-3.00# iostat -xnmpz 5 extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 0.2 2.1 11.4 10.2 0.0 0.0 0.0 7.6 0 1 c1t0d0 0.2 2.1 11.4 10.2 0.0 0.0 0.0 7.6 0 1 c1t0d0s0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.2 0 0 c1t0d0s2 0.0 0.0 0.0 0.3 0.0 0.0 0.0 3.4 0 0 c1t1d0 0.0 0.0 0.0 0.3 0.0 0.0 0.0 4.9 0 0 c1t1d0s2 0.0 0.0 0.0 0.2 0.0 0.0 0.0 0.9 0 0 c1t2d0 0.0 0.0 0.0 0.2 0.0 0.0 0.0 4.6 0 0 c1t2d0s2 0.2 0.0 0.2 0.3 0.0 0.0 0.0 0.1 0 0 c1t3d0 0.2 0.0 0.2 0.3 0.0 0.0 0.0 0.2 0 0 c1t3d0s2 0.0 0.0 0.6 2.3 0.0 0.0 0.1 13.1 0 0 c1t4d0 0.0 0.0 0.6 2.3 0.0 0.0 0.1 13.3 0 0 c1t4d0s0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 10.1 0 0 c1t4d0s2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0 0 c1t4d0s8 extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 32.7 0.0 2048.7 0.0 0.0 1.7 0.0 53.3 0 50 c1t0d0 32.7 0.0 2048.7 0.0 0.0 1.7 0.0 53.3 0 50 c1t0d0s0 extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 42.2 0.0 2664.8 0.0 0.0 1.0 0.0 23.9 0 43 c1t0d0 42.2 0.0 2664.8 0.0 0.0 1.0 0.0 23.9 0 43 c1t0d0s0
bash-3.00# iostat -xnmpz 5 extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 0.2 2.1 11.4 10.2 0.0 0.0 0.0 7.6 0 1 c1t0d0 0.2 2.1 11.4 10.2 0.0 0.0 0.0 7.6 0 1 c1t0d0s0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.2 0 0 c1t0d0s2 0.0 0.0 0.0 0.3 0.0 0.0 0.0 3.4 0 0 c1t1d0 0.0 0.0 0.0 0.3 0.0 0.0 0.0 4.9 0 0 c1t1d0s2 0.0 0.0 0.0 0.2 0.0 0.0 0.0 0.9 0 0 c1t2d0 0.0 0.0 0.0 0.2 0.0 0.0 0.0 4.6 0 0 c1t2d0s2 0.2 0.0 0.2 0.3 0.0 0.0 0.0 0.1 0 0 c1t3d0 0.2 0.0 0.2 0.3 0.0 0.0 0.0 0.2 0 0 c1t3d0s2 0.0 0.0 0.6 2.3 0.0 0.0 0.1 13.1 0 0 c1t4d0 0.0 0.0 0.6 2.3 0.0 0.0 0.1 13.3 0 0 c1t4d0s0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 10.1 0 0 c1t4d0s2 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.3 0 0 c1t4d0s8 extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 32.7 0.0 2048.7 0.0 0.0 1.7 0.0 53.3 0 50 c1t0d0 32.7 0.0 2048.7 0.0 0.0 1.7 0.0 53.3 0 50 c1t0d0s0 extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 42.2 0.0 2664.8 0.0 0.0 1.0 0.0 23.9 0 43 c1t0d0 42.2 0.0 2664.8 0.0 0.0 1.0 0.0 23.9 0 43 c1t0d0s0 extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 41.3 0.0 2641.5 0.0 0.0 1.5 0.0 36.4 0 52 c1t0d0 41.3 0.0 2641.5 0.0 0.0 1.5 0.0 36.4 0 52 c1t0d0s0 extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 30.9 11.2 1881.3 56.1 0.0 1.0 0.0 24.1 0 41 c1t0d0 30.9 11.2 1881.3 56.1 0.0 1.0 0.0 24.1 0 41 c1t0d0s0 0.0 0.2 0.0 0.2 0.0 0.0 0.0 8.6 0 0 c1t1d0 0.0 0.2 0.0 0.2 0.0 0.0 0.0 8.6 0 0 c1t1d0s2 extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 38.6 0.0 2219.3 0.0 0.0 1.4 0.0 35.2 0 51 c1t0d0 38.6 0.0 2219.3 0.0 0.0 1.4 0.0 35.2 0 51 c1t0d0s0 extended device statistics r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device 30.9 0.0 1865.0 0.0 0.0 1.2 0.0 37.7 0 49 c1t0d0 30.9 0.0 1865.0 0.0 0.0 1.2 0.0 37.7 0 49 c1t0d0s0
Note: If iostat consistently reports %w > 7, the disk subsystem is too busy. To reduce the value, we have spread the filesystem on smaller LUNS. This will reduce the %w value.
(blks/s) and (r+w/s)
less than 16Kb , the I/O is predominantly random. If the ratio is more than 128Kb, it is predominantly sequential. This analysis may be useful when examining alternative disk configurations.bash-3.00# sar -d 5 5 SunOS sfos 5.10 Generic_142910-17 i86pc 07/15/2012 22:34:42 device %busy avque r+w/s blks/s avwait avserv 22:34:47 fd0 0 0.0 0 0 0.0 0.0 nfs1 0 0.0 0 0 0.0 0.0 sd0 0 0.0 0 0 0.0 0.0 sd0,a 0 0.0 0 0 0.0 0.0 sd0,c 0 0.0 0 0 0.0 0.0 sd0,i 0 0.0 0 0 0.0 0.0 sd0,q 0 0.0 0 0 0.0 0.0 sd0,r 0 0.0 0 0 0.0 0.0 sd1 0 0.0 0 0 0.0 0.0 sd2 0 0.0 0 0 0.0 0.0 sd2,c 0 0.0 0 0 0.0 0.0 sd2,h 0 0.0 0 0 0.0 0.0 sd2,i 0 0.0 0 0 0.0 0.0 sd2,q 0 0.0 0 0 0.0 0.0 sd3 0 0.0 0 0 0.0 0.0 sd3,c 0 0.0 0 0 0.0 0.0 sd3,h 0 0.0 0 0 0.0 0.0 sd3,i 0 0.0 0 0 0.0 0.0 sd3,q 0 0.0 0 0 0.0 0.0 sd4 0 0.0 0 0 0.0 0.0 sd4,c 0 0.0 0 0 0.0 0.0 sd4,h 0 0.0 0 0 0.0 0.0 sd4,i 0 0.0 0 0 0.0 0.0 sd4,q 0 0.0 0 0 0.0 0.0 sd5 0 0.0 0 0 0.0 0.0 sd5,a 0 0.0 0 0 0.0 0.0 sd5,c 0 0.0 0 0 0.0 0.0 sd5,h 0 0.0 0 0 0.0 0.0 sd5,i 0 0.0 0 0 0.0 0.0 sd5,q 0 0.0 0 0 0.0 0.0
srinivas says
Very good article which is very useful for the people who do not have idea on operating system and freshers.