Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-12367

readahead page count calculation is incorrect for unaligned reads

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • Minor
    • Lustre 2.13.0
    • None
    • None
    • 3
    • 9223372036854775807

    Description

      While looking at at 47K strided read workload, I noticed that there were a lot of 1 page read RPCs, roughly half as many as the larger RPCs:

      read write
      pages per rpc rpcs % cum % | rpcs % cum %
      1: 12 35 35 | 0 0 0
      2: 0 0 35 | 0 0 0
      4: 0 0 35 | 0 0 0
      8: 0 0 35 | 0 0 0
      16: 22 64 100 | 0 0 0

      read write
      rpcs in flight rpcs % cum % | rpcs % cum %
      0: 0 0 0 | 0 0 0
      1: 34 100 100 | 0 0 0

       

      I dug in to this, and I eventually figured out that when a read is unaligned on both the first and last page, the length calculation used to determine the count of pages for readahead is incorrect.  A 47K read is 12 pages in length, but when it is unaligned at start and end, the total page count is 13 pages.

       

      The fix is pretty simple, and the 1 page RPCs disappear from the workload.

      This should significantly increase performance for unaligned read workloads of this type.  I'll try to get some benchmarks to include in the patch.

      Attachments

        Issue Links

          Activity

            People

              pfarrell Patrick Farrell (Inactive)
              pfarrell Patrick Farrell (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: