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

Reply via email to