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

Reply via email to