Peter Eriksson
2009-Jul-07 20:48 UTC
[zfs-discuss] [perf-discuss] help diagnosing system hang
Interresting... I wonder what differs between your system and mine. With my dirt-simple stress-test: server1# zpool create X25E c1t15d0 server1# zfs set sharenfs=rw X25E server1# chmod a+w /X25E server2# cd /net/server1/X25E server2# gtar zxf /var/tmp/emacs-22.3.tar.gz and a fully patched X42420 running Solaris 10 U7 I still see these errors: Jul 7 22:35:04 merope Error for Command: write(10) Error Level: Retryable Jul 7 22:35:04 merope scsi: Requested Block: 5301376 Error Block: 5301376 Jul 7 22:35:04 merope scsi: Vendor: ATA Serial Number: CVEM849300BM Jul 7 22:35:04 merope scsi: Sense Key: Unit Attention Jul 7 22:35:04 merope scsi: ASC: 0x29 (power on, reset, or bus reset occurred), ASCQ: 0x0, FRU: 0x0 Jul 7 22:35:09 merope scsi: WARNING: /pci at 0,0/pci10de,375 at f/pci1000,3150 at 0/sd at f,0 (sd32): Jul 7 22:35:09 merope Error for Command: write(10) Error Level: Retryable Jul 7 22:35:09 merope scsi: Requested Block: 5315248 Error Block: 5315248 Jul 7 22:35:09 merope scsi: Vendor: ATA Serial Number: CVEM849300BM Jul 7 22:35:09 merope scsi: Sense Key: Unit Attention Jul 7 22:35:09 merope scsi: ASC: 0x29 (power on, reset, or bus reset occurred), ASCQ: 0x0, FRU: 0x0 I had an idea that this might be due to NCQ overruns since if I''m not mistaken the X25E only supports 32 outstanding commands, so I''ve started testing various things. Setting sd_max_throttle in /etc/system doesn''t seem to make any difference. However... tuning zfs_vdev_max_pendning down from 35 to 10 made a difference. Whereas if I used to see long "hickups" in "zpool iostat X25E 10", with that one tuned down to 10 things run *much* more smoothly - no hickups: capacity operations bandwidth pool used avail read write read write ---------- ----- ----- ----- ----- ----- ----- X25E 284K 29.7G 0 5 332 549K X25E 284K 29.7G 0 197 0 5.70M X25E 284K 29.7G 0 197 0 2.28M X25E 59.8M 29.7G 0 322 0 10.9M X25E 59.8M 29.7G 0 418 0 7.97M X25E 59.8M 29.7G 0 588 0 10.3M Still a lot of of the same errors on the console though (more often actually...) Output from iostat -zx 10 if it is of interest: extended device statistics device r/s w/s kr/s kw/s wait actv svc_t %w %b sd32 0.0 718.7 0.0 1437.4 0.0 0.0 0.0 0 3 sd32 0.0 401.1 0.0 6089.1 0.0 0.8 2.1 0 43 sd32 0.0 1187.5 0.0 12341.7 0.0 0.7 0.6 2 37 sd32 0.0 758.2 0.0 14835.1 0.0 1.7 2.3 4 66 sd32 0.0 403.1 0.0 4606.8 0.0 1.5 3.9 4 77 sd32 0.0 350.8 0.0 3420.8 0.0 1.6 4.6 4 80 sd32 0.0 315.9 0.0 8578.2 0.0 0.4 1.1 0 6 I''m really curious what is causing these errors... It''s almost like it''s something else that is causing them. Perhaps some "flush cache" command that is executed after the writes to the device has been done (since I see this error more often with ''zfs_vdev_max_pendning'' tuned down). Another interresting thing is that I only see this for I/O issued from a remote server over NFS. If I write directly to the X25E volume on the server things work really smooth. -- This message posted from opensolaris.org