Hello list, So things are pretty stable and I thought I would look at the bad write performance (finally). As a quick and dirty test:
# time mkfile 512m speedtest hfs: real 0m5.564s zfs: real 0m21.247s Ouch! mkfile simply calls write(), which calls VNOP_WRITE(), which calls zfs_vnop_write() or hfs_vnop_write(). Some IO size difference of course; zfs uses 128KB transfer chunks, but interestingly, changing recordsize makes no impact. So I spent two days taking apart our vnops, the dmu, the txg, zio, vdev and vdev_disk (even condvar, in case the signalling was wrong) looking for where it might be slow. No real progress. Then I thought I would simply things by cutting out half the problem (userland and syscall entry), so I could focus on the ZFS internals. I cooked up a simple write-from-kernel-thread: https://gist.github.com/lundman/3d7d952b77b31e9bb45afcd69ef42b26 Just vn_open() and call vn_rdwr() in a loop, until 512MB in size. Only to have this outcome: 2018-03-27 08:44:20.695647+0000 <zfs`write_test> write_test start 16315 2018-03-27 08:44:20.695963+0000 <zfs`write_test> vn_open(): 0 2018-03-27 08:44:22.591186+0000 <zfs`write_test> write_test done 16504 2018-03-27 08:44:22.591188+0000 <zfs`write_test> write_test delta 189 -rw-r--r-- 1 root wheel 512M Mar 28 09:01 speedtest Which is about 3 seconds. That's nice and fast. vn_rdwr() calls VNOP_WRITE(), which calls zfs_vnop_write(), so everything below, dmu, txg, zio, vdev and vdev_disk (and condvars!) are just fine, and pretty fast. So the calls to VNOP_WRITE() is being slowed down? * Does XNU then have a write throttle? 'grep'ping for throttle in both XNU and HFS shows many hits, so it would seem so, I just assumed they were thread throttles (from the name). We understand we will always be second class citizens in XNU, but surely we can do something to integrate better with the XNU ecosystem? Some sort of animal (or beverage) sacrifice? * Are there documentation/examples on the write throttle? We clearly must be doing something WRONG after all, throw us a bone people! Cheers, Lund -- Jorgen Lundman | <lund...@lundman.net> Unix Administrator | +81 (0)90-5578-8500 Shibuya-ku, Tokyo | Japan _______________________________________________ Do not post admin requests to the list. They will be ignored. Filesystem-dev mailing list (Filesystem-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/filesystem-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com