On Thu, May 10, 2012 at 5:37 AM, Ian Collins <i...@ianshome.com> wrote: > I have an application I have been using to manage data replication for a > number of years. Recently we started using a new machine as a staging > server (not that new, an x4540) running Solaris 11 with a single pool built > from 7x6 drive raidz. No dedup and no reported errors. > > On that box and nowhere else is see empty snapshots taking 17 or 18 seconds > to write. Everywhere else they return in under a second. > > Using truss and the last published source code, it looks like the pause is > between a printf and the call to zfs_ioctl and there aren't any other > functions calls between them:
For each snapshot in a stream, there is one zfs_ioctl() call. During that time, the kernel will read the entire substream (that is, for one snapshot) from the input file descriptor. > > 100.5124 0.0004 open("/dev/zfs", O_RDWR|O_EXCL) = 10 > 100.7582 0.0001 read(7, "\0\0\0\0\0\0\0\0ACCBBAF5".., 312) = 312 > 100.7586 0.0000 read(7, 0x080464F8, 0) = 0 > 100.7591 0.0000 time() = 1336628656 > 100.7653 0.0035 ioctl(8, ZFS_IOC_OBJSET_STATS, 0x08040CF0) = 0 > 100.7699 0.0022 ioctl(8, ZFS_IOC_OBJSET_STATS, 0x08040900) = 0 > 100.7740 0.0016 ioctl(8, ZFS_IOC_OBJSET_STATS, 0x08040580) = 0 > 100.7787 0.0026 ioctl(8, ZFS_IOC_OBJSET_STATS, 0x080405B0) = 0 > 100.7794 0.0001 write(1, " r e c e i v i n g i n".., 75) = 75 > 118.3551 0.6927 ioctl(8, ZFS_IOC_RECV, 0x08042570) = 0 > 118.3596 0.0010 ioctl(8, ZFS_IOC_OBJSET_STATS, 0x08040900) = 0 > 118.3598 0.0000 time() = 1336628673 > 118.3600 0.0000 write(1, " r e c e i v e d 3 1 2".., 45) = 45 > > zpool iostat (1 second interval) for the period is: > > tank 12.5T 6.58T 175 0 271K 0 > tank 12.5T 6.58T 176 0 299K 0 > tank 12.5T 6.58T 189 0 259K 0 > tank 12.5T 6.58T 156 0 231K 0 > tank 12.5T 6.58T 170 0 243K 0 > tank 12.5T 6.58T 252 0 295K 0 > tank 12.5T 6.58T 179 0 200K 0 > tank 12.5T 6.58T 214 0 258K 0 > tank 12.5T 6.58T 165 0 210K 0 > tank 12.5T 6.58T 154 0 178K 0 > tank 12.5T 6.58T 186 0 221K 0 > tank 12.5T 6.58T 184 0 215K 0 > tank 12.5T 6.58T 218 0 248K 0 > tank 12.5T 6.58T 175 0 228K 0 > tank 12.5T 6.58T 146 0 194K 0 > tank 12.5T 6.58T 99 258 209K 1.50M > tank 12.5T 6.58T 196 296 294K 1.31M > tank 12.5T 6.58T 188 130 229K 776K > > Can anyone offer any insight or further debugging tips? I have yet to see a time when zpool iostat tells me something useful. I'd take a look at "iostat -xzn 1" or similar output. It could point to imbalanced I/O or a particular disk that has abnormally high service times. Have you installed any SRUs? If not, you could be seeing: 7060894 zfs recv is excruciatingly slow which is fixed in Solaris 11 SRU 5. If you are using zones and are using any https pkg(5) origins (such as https://pkg.oracle.com/solaris/support), I suggest reading https://forums.oracle.com/forums/thread.jspa?threadID=2380689&tstart=15 before updating to SRU 6 (SRU 5 is fine, however). The fix for the problem mentioned in that forums thread should show up in an upcoming SRU via CR 7157313. -- Mike Gerdts http://mgerdts.blogspot.com/ _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss