[LU-12158] Don't have large stripe_width and stride to prevent unexpected performance regression Created: 04/Apr/19  Updated: 06/May/20  Resolved: 15/Jun/19

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Shuichi Ihara Assignee: Wang Shilong (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Environment:

master


Issue Links:
Related
Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

stripe width and stride was calculated based on optimal_io_size that kernel got from backend storage devices. If storage controller returns large optimal io size (e.g. 16MB) to kernel, stripe_width and stride are are large value (e.g. optimal_io_size/blcok size) at mkfs.

[root@es18k-vm1 ~]# dumpe2fs -h /dev/sda  | grep RAID
dumpe2fs 1.44.3.wc1 (23-July-2018)
RAID stride:              4096
RAID stripe width:        4096
[root@es18k-vm1 ~]# dumpe2fs -h /dev/sdi  | grep RAID
dumpe2fs 1.44.3.wc1 (23-July-2018)
RAID stride:              512
RAID stripe width:        512

[root@es18k-vm1 ~]# cat /sys/block/sda/queue/optimal_io_size 
16777216
[root@es18k-vm1 ~]# cat /sys/block/sdi/queue/optimal_io_size 
2097152

However, such large stripe_width and stride size causes performance regression. because ext4 takes more costs to find stripe_width-sized free chunks.

  2MB Chunk size   256K Chunk size  
  Write(MB/s) Read(MB/s) Write(MB/s) Read(MB/s)
stripe_width=512,stride=512 10,810 10,124 10,492 6,923
stripe_width=1024,stride=1024 10,793 10,064 10,431 6,921
stripe_width=2048,stride=2048 8,047 10,080 6,629 7,381
stripe_width=4096,stride=4096 7,350 10,089 6,505 7,282

Also, stripe_width and stride are tunable (e.g. -E stripe_width= 4096,stride=4096) option to mkfs.  If administrator formats OSTs with wrong stripe_width and stride, it may cause unexpected performance regressions.

mkfs.lustre should avoid such large stripe_width/stride and prints a warning message if it's trying to configure.



 Comments   
Comment by Gerrit Updater [ 26/Apr/19 ]

Wang Shilong (wshilong@ddn.com) uploaded a new patch: https://review.whamcloud.com/34767
Subject: LU-12158 mke2fs: avoid too large stride and stripe_width
Project: tools/e2fsprogs
Branch: master-lustre
Current Patch Set: 1
Commit: 07b62f26bed99602f492b2b6ff1c932fbb3048c7

Comment by Gerrit Updater [ 07/Jun/19 ]

Andreas Dilger (adilger@whamcloud.com) merged in patch https://review.whamcloud.com/34767/
Subject: LU-12158 mke2fs: avoid too large stride and stripe_width
Project: tools/e2fsprogs
Branch: master-lustre
Current Patch Set:
Commit: 045ec3ce0f16d35f2ee90f9c3adba3471dbfd625

Comment by Peter Jones [ 15/Jun/19 ]

Looks like this is fixed and just needs a new e2fsprogs release so it is available

Generated at Sat Feb 10 02:50:09 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.