12-CURRENT: ZFS single stream/large files read performance degradation
Konstantin Belousov
kostikbel at gmail.com
Tue Dec 6 08:45:45 UTC 2016
On Tue, Dec 06, 2016 at 10:52:12AM +0300, Alex Tutubalin wrote:
> Hi,
>
> I'm using freebsd/zfs box to store/access media files (mostly RAW photos
> /thousands/ and some video), so it is 'single user NAS' (connected via
> 10G to my workstation).
>
> This box has upgraded to 12-current several weeks ago, it was also
> updated with new disks and after that I see serious read speed
> performance degradation.
>
> This hurts me so much, that I've run tests with separate set of HDDs
> yesterday, using FreeBSD 10.1, 10.2, 10.3, 11.0, 12-20161130 booted from
> memstick (so, default settings, no adjustments).
>
> In details:
>
> Box configuration: Intel i5-2400 (3.1Ghz), 16GB RAM, LSI-9211-8i
> controller in dumb IT-mode. Disks: WD1003FBYX (6-drive and 7-drive
> RAIDZ2 were tested)
>
> Testing methodology:
>
> boot from memstick
> zpool create -O recordsize=nn ztest raidz2 /dev/gpt/DISK[0-5/6] (for 6
> and 7 disk RAIDZ2)
> zfs create ztest/pool
> dd if=/dev/zero of=/ztest/pool/100gfile bs=1m count=100k
> dd if=/ztest/pool/100gfile of=/dev/null bs=1m
>
> And write numbers (first free digits :) into excel table.
>
> I've tested 5 versions of FreeBSD (all memstick images are from
> ftp.freebsd.org), two recordsizes (128k and 1m) and two RAIDZ2 disc
> count: 6 and 7.
>
> Results are here in table:
> http://blog.lexa.ru/2016/12/06/freebsd_zfs_read_speed_oni_ubili_kenni.html
> My blog post is in Russian, but the table has english captions, so
> speaks for itself.
>
> In short, for 6-drive array and 11.0 against 12-20163011
>
> 128k recordsize:
>
> 11.0 503Mb/s(read)/462 Mb/s(write)
>
> 12-Current: 380/189
>
> 1m recordsize:
>
> 11.0: 507/521
>
> 12-current: 515/203.
>
> It is possible to get single-stream read speed back in 12-Current by
> setting vfs.zfs.zfetch.max_distance to very high number (1 gigabyte or
> even more, there is significant difference between 800m and 1800m), but
> this is not acceptable solution because any small read will become very
> large.
>
> For now, I'm downgrading back to 11.0, but it looks like I need to
> report this degradation to whom it may concern :)
Are you using memstick image from the download site ?
Note that all HEAD images produced by re@ have full debugging enabled,
among which both kernel-side INVARIANTS and WITNESS, and usermode malloc
debugging, have potentially huge impact on the system performance.
More information about the freebsd-fs
mailing list