Replies: 1 comment 3 replies
-
How's it behave without encryption, and what CPU? Encryption can be a significant bottleneck even if you have various hardware support for it.
That tunable and its friends at least date back to 2.0.X, so you should have them. |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Configuration is raidz2 with 8 hard drives, ZFS 2.1.2 on Ubuntu 22.04/Linux 5.15, new empty pool with encryption.
Expectation: reading/writing to array with 1MB recordsize produces 1MB/6~=170kB chunks on disk. Using a recordsize of 16MB produces 16MB/6~=2730kB chunks on disk. Hard drives consistently perform better with larger size reads, up to several MB contiguous, so every increase above 1MB recordsize should produce faster throughput, approaching 6x spindle rate, or ~1300MBps, assuming enough cpu/controller bandwidth.
Actual result: Any increase over 1MB slows down streaming reads, with 1MB being the fastest size, and 16MB being the slowest, and 4MB having an odd bump, but still not as fast as 1MB
Theory: streaming readahead is non-functional when going above 1MB, a 16MB recordsize involves the disks idling while userspace reads that last record out of arc, before being able to issue more physical reads. Low disk utilization with large recordsize seen. Although the read speed out of arc would seem to work against that theory, it's quite fast. Don't know where all the idle time is coming from.
Examples:
Raw disk performance at top of drive:
Low drive utilization during 16MB reads, mostly in the 20%'s:
arc cache throughput test (100% pre-cached):
scrub speed of array is ~1000MBps:
Knobs tried:
zfs_vnops_read_chunk_size
zfs_vdev_aggregation_limit
zfs_vdev_async_read_max_active
zfs_vdev_async_read_min_active
zfs_vdev_cache_bshift
zfs_vdev_cache_max
zfs_vdev_cache_size
zfs_vdev_max_active
zfs_vdev_read_gap_limit
zfs_vdev_sync_read_max_active
zfs_vdev_sync_read_min_active
dmu_prefetch_max
zio_dva_throttle_enabled
io schedulers: mq-deadline,non,bfq,kyber
What's next?
Beta Was this translation helpful? Give feedback.
All reactions