Details

    • Bug
    • Resolution: Fixed
    • Major
    • Lustre 2.4.1, Lustre 2.5.0
    • Lustre 2.4.0
    • None
    • Hyperion/LLNL
    • 3
    • 8187

    Description

      We performed a comparison between 2.3.0, 2.1.5 and current Lustre. We say a regression in metadata performance compared to 2.3.0. Spreadsheet attached.

      Attachments

        Issue Links

          Activity

            [LU-3305] Quotas affect Metadata performance

            This is a previously known problem discussed in LU-2442. The "on-by-default" quota accounting introduced serialization in the quota layer that broke the SMP scaling optimizations done in the 2.3 code. This wasn't fixed until v2_3_63_0-35-g6df197d (http://review.whamcloud.com/5010), so this will hide any regressions in the metadata performance when testing on a faster system, unless the quota feature is disabled on the MDS (tune2fs -O ^quota /dev/mdt).

            It may well be that there is still a performance impact from the "on-by-default" quota accounting, which is worthwhile to test before trying to find some other cause for this regression.

            adilger Andreas Dilger added a comment - This is a previously known problem discussed in LU-2442 . The "on-by-default" quota accounting introduced serialization in the quota layer that broke the SMP scaling optimizations done in the 2.3 code. This wasn't fixed until v2_3_63_0-35-g6df197d ( http://review.whamcloud.com/5010 ), so this will hide any regressions in the metadata performance when testing on a faster system, unless the quota feature is disabled on the MDS (tune2fs -O ^quota /dev/mdt). It may well be that there is still a performance impact from the "on-by-default" quota accounting, which is worthwhile to test before trying to find some other cause for this regression.
            pjones Peter Jones added a comment -

            Niu

            Are you able to advise on the reported drop due to the quotas landing?

            Alex/Nasf

            Any comments?

            Thanks

            Peter

            pjones Peter Jones added a comment - Niu Are you able to advise on the reported drop due to the quotas landing? Alex/Nasf Any comments? Thanks Peter
            ihara Shuichi Ihara (Inactive) added a comment - - edited

            Unique direcotry

            version commit Dir creation Dir stat Dir removal File creation File stat File removal
            v2_3_50_0-143 9ddf386035767a96b54e21559f3ea0be126dc8cd 22167 194845 32910 50090 132461 36762
            v2_3_50_0-142 c61d09e9944ae47f68eb159224af7c5456cc180a 21835 203123 46178 45941 147281 67253
            v2_3_50_0-141 48bad5d9db9baa7bca093de5c54294adf1cf8303 20542 202014 48271 46264 142450 66267
            2.3.50 04ec54ff56b83a9114f7a25fbd4aa5f65e68ef7a 24727 226128 34064 27859 124521 34591
            2.3 ee695bf0762f5dbcb2ac6d96354f8d01ad764903 23565 222482 44421 48333 125765 76709

            It seems that there are several regression points between 2.3 and 2.4, but at least on my small client testing(tested mdtest on 16 clients, 32 process), commit 9ddf386035767a96b54e21559f3ea0be126dc8cd might be one of regression point for unlink operation. (I collected more data at commit points, but this is one of point big differnce between commits.
            I'm still working to verify wether this is exactly point. will run on large number of client environment.

            ihara Shuichi Ihara (Inactive) added a comment - - edited Unique direcotry version commit Dir creation Dir stat Dir removal File creation File stat File removal v2_3_50_0-143 9ddf386035767a96b54e21559f3ea0be126dc8cd 22167 194845 32910 50090 132461 36762 v2_3_50_0-142 c61d09e9944ae47f68eb159224af7c5456cc180a 21835 203123 46178 45941 147281 67253 v2_3_50_0-141 48bad5d9db9baa7bca093de5c54294adf1cf8303 20542 202014 48271 46264 142450 66267 2.3.50 04ec54ff56b83a9114f7a25fbd4aa5f65e68ef7a 24727 226128 34064 27859 124521 34591 2.3 ee695bf0762f5dbcb2ac6d96354f8d01ad764903 23565 222482 44421 48333 125765 76709 It seems that there are several regression points between 2.3 and 2.4, but at least on my small client testing(tested mdtest on 16 clients, 32 process), commit 9ddf386035767a96b54e21559f3ea0be126dc8cd might be one of regression point for unlink operation. (I collected more data at commit points, but this is one of point big differnce between commits. I'm still working to verify wether this is exactly point. will run on large number of client environment.
            mdiep Minh Diep added a comment -

            comparison between 2.3 and 2.4.50 RC1

            mdiep Minh Diep added a comment - comparison between 2.3 and 2.4.50 RC1

            I also hit same regression on the latest master commit and started to find where retrogression started. "git bisect" would help. I will post soon which commit causes this regressions.

            ihara Shuichi Ihara (Inactive) added a comment - I also hit same regression on the latest master commit and started to find where retrogression started. "git bisect" would help. I will post soon which commit causes this regressions.
            liang Liang Zhen (Inactive) added a comment - - edited

            As we can see from these graphs, the major difference is about directory per process creation performance, but stddev of all creation tests are very high, for example, 2.3 directory per process creation, stddev value is above 50% of average value. One possible reason could be journal size, I think our default journal size is still 1GB? I would suggest to have 2G internal journal at least, and repeat 10 or more times.
            Another thing I cannot explain is, why shared directory file stat performance is so much worse than dir per process?

            liang Liang Zhen (Inactive) added a comment - - edited As we can see from these graphs, the major difference is about directory per process creation performance, but stddev of all creation tests are very high, for example, 2.3 directory per process creation, stddev value is above 50% of average value. One possible reason could be journal size, I think our default journal size is still 1GB? I would suggest to have 2G internal journal at least, and repeat 10 or more times. Another thing I cannot explain is, why shared directory file stat performance is so much worse than dir per process?

            2.3/2.4 mdtest performance data

            liang Liang Zhen (Inactive) added a comment - 2.3/2.4 mdtest performance data
            mdiep Minh Diep added a comment - Opensfs cluster run 2.3.65 mdtest fpp: https://maloo.whamcloud.com/test_sets/697bfbb2-bca3-11e2-b6d1-52540035b04c mdtest ssf: https://maloo.whamcloud.com/test_sets/6b79a220-bca3-11e2-8441-52540035b04c 2.3.0 mdtest fpp: https://maloo.whamcloud.com/test_sets/0206a48c-bcb7-11e2-8441-52540035b04c mdtest ssf: https://maloo.whamcloud.com/test_sets/054d925e-bcb7-11e2-8441-52540035b04c

            Keith was referring to LU-3281, which was a bug involving IOR.
            We also run 5 iterations for mdtest.

            cliffw Cliff White (Inactive) added a comment - Keith was referring to LU-3281 , which was a bug involving IOR. We also run 5 iterations for mdtest.
            rread Robert Read added a comment -

            Do you mean mdtest instead of IOR?

            rread Robert Read added a comment - Do you mean mdtest instead of IOR?
            cliffw Cliff White (Inactive) added a comment - - edited

            Kieth, the runs are an average of 5 iterations for IOR. The storage was fine for all three runs. We've stopped using the problematic nodes for these tests. There is no oprofile data from the MDS.

            cliffw Cliff White (Inactive) added a comment - - edited Kieth, the runs are an average of 5 iterations for IOR. The storage was fine for all three runs. We've stopped using the problematic nodes for these tests. There is no oprofile data from the MDS.

            People

              niu Niu Yawei (Inactive)
              cliffw Cliff White (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              20 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: