Message ID | cover.1735748715.git.anand.jain@oracle.com (mailing list archive) |
---|---|
Headers | show |
Series | raid1 balancing methods | expand |
On Thu, Jan 02, 2025 at 02:06:29AM +0800, Anand Jain wrote: > v5: > Fixes based on review comments: > . Rewrite `btrfs_read_policy_to_enum()` using `sysfs_match_string()` > and `strncpy()`. > . Rewrite the round-robin method based on read counts. > . Fix the smatch indentation warning. > - Change the default minimum contiguous device read size for round-robin > from 256K to 192K, as the latter performs slightly better. This depends on the device and load and the read pattern so any number is fine, I'd rather stick to something that looks sensible if the difference is slight. Changing that later based on extensive benchmarks. > - Introduce a framework to track filesystem read counts. (New patch) > - Reran defrag performance numbers > $ xfs_io -f -d -c 'pwrite -S 0xab 0 1000000000' /btrfs/P6B > $ time -p btrfs filesystem defrag -r -f -c /btrfs > > | | Time | Read I/O Count | gain | > | | Real | devid1 | devid2 | w-PID | > |---------|-------|--------|--------|-------| > | pid | 11.14s| 3808 | 0 | - | > | rotation| | | | | > | 196608| 6.54s| 2532 | 1276 | 41.29%| > | 262144| 8.42s| 1907 | 1901 | 24.41%| > | devid:1 | 10.95s| 3807 | 0 | 1.70% | > > v4: As we're at rc5 we need to get this series to for-next soon, before rc6 is released this Sunday. I'll do one review pass and then move the patches to for-next. I'm not convinced we should do the module parameter but as this is to ease testing let's do it.
On 2/1/25 19:28, David Sterba wrote: > On Thu, Jan 02, 2025 at 02:06:29AM +0800, Anand Jain wrote: >> v5: >> Fixes based on review comments: >> . Rewrite `btrfs_read_policy_to_enum()` using `sysfs_match_string()` >> and `strncpy()`. >> . Rewrite the round-robin method based on read counts. >> . Fix the smatch indentation warning. >> - Change the default minimum contiguous device read size for round-robin >> from 256K to 192K, as the latter performs slightly better. > > This depends on the device and load and the read pattern so any number > is fine, I'd rather stick to something that looks sensible if the > difference is slight. Changing that later based on extensive benchmarks. > The optimization should target the generic read-write workload, where I find 256k or more reasonable, though I am unable to demonstrate this at the moment. It's a good idea to gather more feedback. I've sent a fix with SZ_256K and for a missed bug, hoping both are folded into their patches. Thx. >> - Introduce a framework to track filesystem read counts. (New patch) >> - Reran defrag performance numbers >> $ xfs_io -f -d -c 'pwrite -S 0xab 0 1000000000' /btrfs/P6B >> $ time -p btrfs filesystem defrag -r -f -c /btrfs >> >> | | Time | Read I/O Count | gain | >> | | Real | devid1 | devid2 | w-PID | >> |---------|-------|--------|--------|-------| >> | pid | 11.14s| 3808 | 0 | - | >> | rotation| | | | | >> | 196608| 6.54s| 2532 | 1276 | 41.29%| >> | 262144| 8.42s| 1907 | 1901 | 24.41%| >> | devid:1 | 10.95s| 3807 | 0 | 1.70% | >> >> v4: > > As we're at rc5 we need to get this series to for-next soon, before rc6 > is released this Sunday. I'll do one review pass and then move the > patches to for-next. I'm not convinced we should do the module parameter > but as this is to ease testing let's do it. Thanks, Anand