[LU-11775] buffered write single client improvements Created: 14/Dec/18  Updated: 13/Jun/20  Resolved: 13/Jun/20

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

Type: Improvement Priority: Minor
Reporter: Dongyang Li Assignee: Dongyang Li
Resolution: Fixed Votes: 0
Labels: None

Attachments: File master+LU-11775+LU-9920.svg     File master+LU-11775.svg     File master.svg    
Issue Links:
Related
is related to LU-9920 Use pagevec for marking pages dirty Resolved
is related to LU-11942 OSC page & grant simplification/batching Resolved
Rank (Obsolete): 9223372036854775807

 Description   

After landing LU-9906 the read performance improved to an acceptable level. Write performance also increased but still needs some improvements to reach the same level. This ticket tracks the work.



 Comments   
Comment by Gerrit Updater [ 14/Dec/18 ]

Li Dongyang (dongyangli@ddn.com) uploaded a new patch: https://review.whamcloud.com/33858
Subject: LU-11775 osc: reduce lock contention in osc_unreserve_grant
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: ffcc069b2b654f6437b090b8ff8c67b5d1ac2ea6

Comment by Gerrit Updater [ 14/Dec/18 ]

Li Dongyang (dongyangli@ddn.com) uploaded a new patch: https://review.whamcloud.com/33859
Subject: LU-11775 osc: reduce atomic ops in osc_enter_cache_try
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 95d0af71efca35ea610bbddec2025100b052cdf5

Comment by Gerrit Updater [ 14/Dec/18 ]

Li Dongyang (dongyangli@ddn.com) uploaded a new patch: https://review.whamcloud.com/33860
Subject: LU-11775 osc: check if opg is in lru list without locking
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 4225477391bd60784151a6102f1fc989e11f7a92

Comment by Gerrit Updater [ 14/Dec/18 ]

Li Dongyang (dongyangli@ddn.com) uploaded a new patch: https://review.whamcloud.com/33861
Subject: LU-11775 obdclass: protect imp_sec using rwlock_t
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 87b1a916e6955c10943d6ee6b9b4d9af393c93cc

Comment by Gerrit Updater [ 14/Dec/18 ]

Li Dongyang (dongyangli@ddn.com) uploaded a new patch: https://review.whamcloud.com/33862
Subject: LU-11775 osc: check imp_invalid without imp_lock
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: db8dda7213403e2b2caedf33b55e4fa5f2e62db6

Comment by Dongyang Li [ 14/Dec/18 ]

As we can see LU-9920 can reduce the overhead in set_page_dirty/write_commit_callback.

There is still __ _raw_spin_lock from osc_page_cache_add which I can not figure out the exact location.

mpirun -np 32 ior -w -t 16m -b 16g -F -e -vv -o /cache1/file -k

master:

Max Write: 15237.92 MiB/sec (15978.12 MB/sec)

master + LU-11775:

Max Write: 17045.11 MiB/sec (17873.09 MB/sec)

master + LU-11775 + LU-9920:

Max Write: 17476.77 MiB/sec (18325.72 MB/sec)

Comment by Patrick Farrell (Inactive) [ 10/Feb/19 ]

Li,

Looking at your graphics, I think maybe osc_lru_use has been inlined in to osc_page_cache_add.  I haven't dug in to "LU-11775 osc: check if opg is in lru list without locking" yet, but I don't think it would stop us from hitting that lock entirely.

If you'd like to avoid inlining, the easiest way I've found is calling that function via a function pointer.  Then you could see it easily in your traces again.  (There are various "don't inline" directives, but I've never been able to get them to work when building Lustre.)

Comment by Dongyang Li [ 11/Feb/19 ]

Patrick, thanks for the nice tip!

Yes I've been using noinline directive but apparently it did not work.

I will give it a shot when I can get to the environment, and provide an update on LU-9920 as well.

Cheers

DY

Comment by Andreas Dilger [ 13/Feb/19 ]

master:
Max Write: 15237.92 MiB/sec (15978.12 MB/sec)

master + LU-11775:
Max Write: 17045.11 MiB/sec (17873.09 MB/sec)

master + LU-11775 + LU-9920:
Max Write: 17476.77 MiB/sec (18325.72 MB/sec)

This information should go into the commit comments of the various patches, like https://review.whamcloud.com/28667

Comment by Gerrit Updater [ 27/Feb/19 ]

Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/33859/
Subject: LU-11775 osc: reduce atomic ops in osc_enter_cache_try
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 8b364fbd6bd9e0088440e6d6837861a641b923a0

Comment by Gerrit Updater [ 27/Feb/19 ]

Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/33860/
Subject: LU-11775 osc: check if opg is in lru list without locking
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: b3af0798682b24d0f39424a7db12c9710a0e64b4

Comment by Gerrit Updater [ 25/Jun/19 ]

Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/33858/
Subject: LU-11775 osc: reduce lock contention in osc_unreserve_grant
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 8a1ae45a3e4f828346c890bf4ccacbd68ea6752c

Comment by Gerrit Updater [ 27/Jun/19 ]

Oleg Drokin (green@whamcloud.com) merged in patch https://review.whamcloud.com/33861/
Subject: LU-11775 obdclass: protect imp_sec using rwlock_t
Project: fs/lustre-release
Branch: master
Current Patch Set:
Commit: 8ed361345154138473707855b2030bad371e96dd

Comment by Andreas Dilger [ 11/Jun/20 ]

Dongyang, is there still work to be done for this ticket? It looks like the patches are included in 2.13.

Comment by Dongyang Li [ 12/Jun/20 ]

No more patches and I think this ticket can be closed now

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