Disksort may deteriorate the i/o performance (Doc ID 1284969.1)

Last updated on JANUARY 19, 2015

Applies to:

Solaris SPARC Operating System - Version 10 11/06 U3 and later
Information in this document applies to any platform.

Symptoms

The disk I/O sub-systems are built to provide maximum throughput which is most often the right thing. However the weakness of tuning for throughput is that occasionally you can get some bizarre behavior when it comes to latency. The way that optimum I/O bandwidth is achieved is by sorting each io by logical block address (LBA) and then issuing those in order to minimize head seek. This is documented in the disksort(9F) manual page.

As a result, disksort could deteriorate the io performance for certain I/O workload leading to I/O performance issues and or cluster panic in some extreme cases.

To determine if your system has been impacted by the adverse effect of disksort,  check the iostat as below, and examine if commands are waiting too much in the wait queue as in the example below.

# iostat -xcntd 1 | egrep c2$
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
::
0.0 4345.8 0.0 271.6 87.7 16.7 20.2 3.8 24 66 c2


In the above example average wait queue length is 87.7 where as average active queue length is 16.7


From the panic dump you could check the same

SolarisCAT(vmcore.0/10U)> sdump 0x60024cead40 sd_lun
{
::
un_ncmds_in_driver = 0xb <-- Wait Q
un_ncmds_in_transport = 0xa <-- Active Q
un_throttle = 0x14 <-- Max throttle
::
un_f_disksort_disabled = 0
::



These are the some of the indication that commands are indeed spending a lot of time in the wait queue, waiting for the disksort to sort the commands based on the LBA.

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms