Great idea -- I've also implemented something like this, and will upstream to illumos soon.
--matt On Wed, Jun 4, 2014 at 11:53 AM, Alexander Motin <[email protected]> wrote: > Hi. > > While doing high-IOPS ZFS benchmarking and profiling on 40-core FreeBSD > system with bunch of SSDs I noticed significant lock congestion spinning on > spa->spa_async_zio_root ZIO lock. As I found, it was caused by multiple > concurrently starting and completing prefetch ZIOs, fighting for the same > lock. To mitigate the problem I've replaced the single async root ZIO with > 16, as you may see in attached patch. > > As result, on concurrent strided read with 4K block and 4K recordsize from > 256 threads (iozone -i 5 -w -r 4k -t 256 -s 256M) I've practically doubled > the test result, rising from 150K IOPS originally to 300K IOPS with the > patch, while total CPU load reduced from 100% to ~60%. > > So I would like to know people opinion about this patch. Won't having > multiple ZIOs and calling multiple zio_wait()'s cause any problems on pool > export? > > Thank you. > > -- > Alexander Motin > > _______________________________________________ > developer mailing list > [email protected] > http://lists.open-zfs.org/mailman/listinfo/developer > >
_______________________________________________ developer mailing list [email protected] http://lists.open-zfs.org/mailman/listinfo/developer
