Hello masters! So we appear to have reached minimum stability to start looking at performance, over at the OS X camp.
And initial checks would indicate that there is possibly something wrong. Most information I have gathered, which is not much, is available here; https://openzfsonosx.org/wiki/Development#iozone Which includes some quick iozone tests. For example; HFS read: https://openzfsonosx.org/w/images/9/9c/Hfs2_read.png ZFS read: https://openzfsonosx.org/w/images/1/11/Zfs2_read.png Which would suggest that we come along at about a third of the speed. Now at the bottom of the whole ZFS layout, we end up in vdev_disk.c, and issue the next bit of IO using buf*() calls. Ie; https://github.com/openzfsonosx/zfs/blob/vnode_threadX/module/zfs/vdev_disk.c#L341 And when IO is done, we immediately call zio_interrupt(). I would like to believe that there is not so many ways I can get that wrong, so it should be something in the area "above". Possibly the ZIO pipeline which issue the requests in the first place. Lock contention elsewhere maybe? Most of the internals of ZFS is as close to ZOL as I could manage. Alas, my knowledge lies in the edges of ZFS. Ie, where ZFS interfaces with the kernel, so I am not so sure where I should poke next. I am hoping for pointers as to where others would look. Can I confirm that ZIO is lining up multiple requests in a row (that is what it does right?) A flamegraph of bonnie running its "creating files" phase looks like; https://openzfsonosx.org/w/images/a/a2/VX_create.svg Sincerely, Lund -- Jorgen Lundman | <[email protected]> Unix Administrator | +81 (0)3 -5456-2687 ext 1017 (work) Shibuya-ku, Tokyo | +81 (0)90-5578-8500 (cell) Japan | +81 (0)3 -3375-1767 (home) _______________________________________________ developer mailing list [email protected] http://lists.open-zfs.org/mailman/listinfo/developer
