Performance issues with 8.0 ZFS and sendfile/lighttpd

Ivan Voras ivoras at freebsd.org
Sat Nov 7 20:42:48 UTC 2009


2009/11/7 Miroslav Lachman <000.fbsd at quip.cz>:

>
> And as you noted, read, write, fault, total and percent are not updated on
> machine with ZFS, so I can't compare it with UFS2 based machine.
> Is this bug in top fixed in 8.x? Will you file a PR? (you know more about FS
> related things than me :])

Not much... it depends on from where the stats are collected - there
is a fair bit of file system infrastructure that ZFS bypasses and if
these stats come from it, they cannot be collected.

The stat is apparently updated around sys/kern/vfs_cluster.c: 233 .

I'm not very familiar with this layer but since it uses struct buf and
the ZFS doesn't use bufcache, this is probably one of the things that
is bypassed, though it would be nice if it weren't since this code
also defines and uses the vfs.write_behind and vfs.read_max sysctls.
Also, since ZFS uses its own threads for IO and the stats are for
curthread, it looks like it would maybe need careful work to actually
assign the IO stats to the correct thread; otherwise it may be
sufficient to add it to vdev_disk.c in vdev_disk_physio().

I don't really know this code and this is mostly mechanical analisys -
it might be wrong. At least I'd like to read someone's comment about
what is curthread in this code path.


More information about the freebsd-fs mailing list