[LU-16581] osd_xattr_get() is much more expensive with zfs Created: 20/Feb/23 Updated: 20/Feb/23 |
|
| Status: | Open |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Minor |
| Reporter: | Alex Zhuravlev | Assignee: | WC Triage |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Rank (Obsolete): | 9223372036854775807 |
| Description |
|
just noticed that sanity/103e takes significantly longer with ZFS. there are number of contributors, but I found one especially interesting: attr_get 36535 samples [usecs] 0 80 1085 9093 zfs: attr_get 36537 samples [usecs] 0 20790 750797 1636365521 i.e. osd_attr_get() (called on a directory) is 692 times slower than ldiskfs version. it's used only in mdt_attr_get_internal():
if (ma->ma_attr.la_dirent_count != LU_DIRENT_COUNT_UNSET &&
ma->ma_attr.la_dirent_count >
mdt->mdt_restriper.mdr_dir_split_count &&
!fid_is_root(mdt_object_fid(o)) &&
mdt->mdt_enable_dir_auto_split &&
!o->mot_restriping &&
stripe_count < atomic_read(&mdt->mdt_mds_mds_conns) + 1 &&
!fixed_layout)
mdt_auto_split_add(info, o);
and only to check whether (re)striping is needed.
|