patchless server kernel
(LU-20)
|
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.4.0, Lustre 2.5.0 |
| Fix Version/s: | None |
| Type: | Technical task | Priority: | Major |
| Reporter: | Andreas Dilger | Assignee: | Niu Yawei (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | kernel | ||
| Attachments: |
|
||||||||
| Issue Links: |
|
||||||||
| Rank (Obsolete): | 10570 | ||||||||
| Description |
|
The quota-replace-dqptr-sem and quota-avoid-dqget-calls patches are applied to the core kernel to improve the locking of quota structures in the VFS. Since quota is enabled by default for 2.4.0 and later kernels, this has a significant performance impact on all systems (see These patches should be submitted upstream so that we don't need to patch the kernel to get this improvement. Some performance tests should be run to show some benefit to a non-Lustre workload (e.g. multi-threaded IO with quota enabled, maybe dbench or iozone or fio) and these results should be included with the upstream submission. |
| Comments |
| Comment by Andreas Dilger [ 16/May/14 ] |
|
Niu, any chance you would be able to push these patches upstream? |
| Comment by Niu Yawei (Inactive) [ 19/May/14 ] |
|
Sure, I'm going to start this work soon. |
| Comment by Niu Yawei (Inactive) [ 22/May/14 ] |
|
Attached files:
|
| Comment by Niu Yawei (Inactive) [ 22/May/14 ] |
|
I compared the performance in my centos6.5 vm (8 cpus, 4G mem). mdtest creation: threads 1 2 4 8 16 disabled quota: 40045 78379 128652 89176 103666 enabled quota: 34939 46725 24095 14321 16510 patched/disabled: 39120 75325 124181 72012 86622 patched/enabled: 34769 67086 111854 85923 87982 mdtest unlink: threads 1 2 4 8 16 disabled quota: 91587 148808 227496 193661 190477 enabled quota: 72426 48726 14845 12825 15907 patched/disabled: 85246 146369 228514 194053 192407 patched/enabled: 78257 124332 166146 180874 174715 dbench 8 threads: ====== disabled quota: ====== Operation Count AvgLat MaxLat -------------------------------------------------- Deltree 32 3.585 8.437 Flush 82625 3.797 207.561 Close 865785 0.004 1.353 LockX 3840 0.005 0.182 Mkdir 16 0.005 0.007 Rename 49897 0.050 6.085 ReadX 1847719 0.006 6.332 WriteX 588019 0.033 6.968 Unlink 238061 0.050 6.537 UnlockX 3840 0.004 0.302 FIND_FIRST 413054 0.024 2.920 SET_FILE_INFORMATION 95961 0.035 6.998 QUERY_FILE_INFORMATION 187253 0.003 0.478 QUERY_PATH_INFORMATION 1068225 0.010 6.211 QUERY_FS_INFORMATION 195932 0.006 0.541 NTCreateX 1178614 0.021 64.684 Throughput 616.998 MB/sec 8 clients 8 procs max_latency=207.575 ms ====== enabled quota: ====== Operation Count AvgLat MaxLat -------------------------------------------------- Deltree 16 11.240 54.888 Flush 61421 3.627 127.876 Close 643369 0.004 0.924 LockX 2848 0.005 0.253 Mkdir 8 0.005 0.008 Rename 37088 0.116 3.845 ReadX 1372315 0.007 5.024 WriteX 435537 0.106 18.304 Unlink 176928 0.351 29.266 UnlockX 2848 0.004 0.095 FIND_FIRST 306847 0.024 1.689 SET_FILE_INFORMATION 71406 0.040 8.933 QUERY_FILE_INFORMATION 138904 0.003 0.421 QUERY_PATH_INFORMATION 794000 0.011 4.027 QUERY_FS_INFORMATION 145520 0.006 0.473 NTCreateX 875964 0.072 52.923 Throughput 457.433 MB/sec 8 clients 8 procs max_latency=127.902 ms ====== patched/disabled: ====== Operation Count AvgLat MaxLat -------------------------------------------------- Deltree 32 3.332 8.210 Flush 82543 3.790 146.987 Close 865200 0.004 1.289 LockX 3836 0.005 0.142 Mkdir 16 0.008 0.038 Rename 49870 0.052 4.907 ReadX 1846334 0.006 6.107 WriteX 587645 0.033 8.086 Unlink 237737 0.052 6.440 UnlockX 3836 0.004 0.105 FIND_FIRST 412704 0.024 1.597 SET_FILE_INFORMATION 95948 0.034 7.854 QUERY_FILE_INFORMATION 187179 0.003 0.408 QUERY_PATH_INFORMATION 1067460 0.010 5.316 QUERY_FS_INFORMATION 195706 0.006 0.613 NTCreateX 1177689 0.021 6.521 Throughput 616.574 MB/sec 8 clients 8 procs max_latency=147.007 ms ====== patched/enabled: ====== Operation Count AvgLat MaxLat -------------------------------------------------- Deltree 32 3.248 8.430 Flush 80481 3.908 241.537 Close 843781 0.004 0.561 LockX 3746 0.005 0.141 Mkdir 16 0.005 0.007 Rename 48642 0.051 6.466 ReadX 1800754 0.006 87.027 WriteX 573185 0.033 6.750 Unlink 231880 0.058 14.507 UnlockX 3746 0.004 0.103 FIND_FIRST 402463 0.024 1.342 SET_FILE_INFORMATION 93557 0.035 42.348 QUERY_FILE_INFORMATION 182573 0.003 1.305 QUERY_PATH_INFORMATION 1041026 0.010 86.289 QUERY_FS_INFORMATION 190869 0.006 1.240 NTCreateX 1148570 0.022 6.285 Throughput 602.147 MB/sec 8 clients 8 procs max_latency=241.561 ms We can see the patch helped a lot on performance, will send the patch to upstream soon. |
| Comment by James A Simmons [ 30/Jun/14 ] |
|
Peter can you link this ticket to |
| Comment by Andreas Dilger [ 02/Jul/14 ] |
|
The patches were pushed upstream http://www.spinics.net/lists/linux-ext4/msg43588.html and were accepted into the quota staging tree:
|
| Comment by James A Simmons [ 15/Aug/14 ] |
|
The following patches from Niu Yawei have landed upstream (linus tree): commit d68aab6b8f572406aa93b45ef6483934dd3b54a6 commit 606cdcca04a609ed4dfbfe788942de9477da556b commit 1ea06bec78a128adc995ca32bd906a6c9bb9cf91 commit 9eb6463f31cf720deaf0e810cacc403d7720b10c commit b9ba6f94b2382ef832f9ck7122976b73004f714714 I believe all the needed patches are now landed upstream. We can close this ticket. |
| Comment by Niu Yawei (Inactive) [ 18/Aug/14 ] |
|
Thanks, James. |