Friday, December 13, 2013

Solaris 11.1 ZFS Write Performance Degradation on Storage Devices That Support the SCSI UNMAP Command

Solaris 11.1 introduced the support for ATA TRIM, SCSI Write Same/UNMAP. However, some storage devices take a long time to execute the UNMAP command. This causes performance issues for random write workloads against a ZFS pool built on such devices.

This issue can occur in the following releases:

SPARC Platform:

•Solaris 11.1 without SRU 3.4
x86  Platform:

•Solaris 11.1 without SRU 3.4
Note: Solaris 8, 9, 10 and 11 are not impacted by this issue.

Systems are only affected by this issue if a ZFS pool uses storage devices that support the SCSI/UNMAP feature. To determine if a system uses such devices, execute the following command as 'root':

    # echo '*sd_state::walk softstate| \
     ::print struct sd_lun un_f_is_trim_supported'|mdb -k

A non-zero value will indicate the system is using one of these devices.

Should the described issue occur, the system will experience performance degradation, usually manifested as a small number of write IOPS. In some cases, warning messages similar to the following may be displayed on the console and appear in the messages file:

    Disconnected command timeout for Target XXXWorkaround
To work around this issue, execute the following commands as 'root':

    # echo "zfs_unmap_ignore_size/W 0"|mdb -kw

    # echo "set zfs:zfs_unmap_ignore_size=0" >> /etc/system
A reboot is not necessary for this change to take effect.

This issue is addressed in the following releases:

SPARC Platform:

•Solaris 11.1 SRU 3.4 or later
x86  Platform:

•Solaris 11.1 SRU 3.4 or later

No comments:

Post a Comment