lkml.org 
[lkml]   [2009]   [Apr]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Linux 2.6.29
    Linus Torvalds wrote:
    >
    > On Thu, 2 Apr 2009, Jeff Garzik wrote:
    >> The most interesting thing I found: the SSD does 80 MB/s for the first ~1 GB
    >> or so, then slows down dramatically. After ~2GB, it is down to 32 MB/s.
    >> After ~4GB, it reaches a steady speed around 23 MB/s.
    >
    > Are you sure that isn't an effect of double and triple indirect blocks
    > etc? The metadata updates get more complex for the deeper indirect blocks.
    >
    > Or just our page cache lookup? Maybe our radix tree thing hits something
    > stupid. Although it sure shouldn't be _that_ noticeable.
    >
    >> There is a similar performance fall-off for the Seagate, but much less
    >> pronounced:
    >> After 1GB: 52 MB/s
    >> After 2GB: 44 MB/s
    >> After 3GB: steady state
    >
    > That would seem to indicate that it's something else than the disk speed.

    Attached are some additional tests using sync_file_range, dd, an SSD and
    a normal SATA disk. The test program -- overwrite.c -- is unchanged
    from my last posting, basically the same as Linus's except with
    posix_fadvise()

    Observations:

    * the no-name SSD does seem to burst the first ~1GB of writes rapidly,
    but degrades to a much lower sustained level, as observed before.
    Repeated tests do not produce ~80 MB/s, only the first test, which lends
    credence to the theory about background activity.

    * For the SSD, overwrite is noticeably faster than dd.

    * For the Seagate NCQ hard drive, dd is noticeably faster than overwrite.

    * fadvise() appears to help, but mostly the results are either
    inconclusive or lost in the noise: A slight increase in throughput, and
    a slight increase in system time.

    The test sequence for both SATA devices was the following:

    3 x dd
    3 x overwrite
    3 x overwrite w/ fadvise(don't need)

    System setup: Intel Nahalem(sp?) x86-64, ICH10, Fedora 10, ext3
    filesystem (mounted defaults + noatime), 2.6.29 vanilla kernel.

    Regards,

    Jeff





    =======================================================
    128GB, 3.0 Gbps no-name SATA SSD, x86-64, ext3, 2.6.29 vanilla

    First dd(1) creates the file, others simply rewrite it.
    =======================================================
    24000+0 records in
    24000+0 records out
    25165824000 bytes (25 GB) copied, 917.599 s, 27.4 MB/s)

    real 15m30.928s
    user 0m0.016s
    sys 1m3.924s


    24000+0 records in
    24000+0 records out
    25165824000 bytes (25 GB) copied, 1056.92 s, 23.8 MB/s)

    real 18m1.686s
    user 0m0.016s
    sys 1m4.816s


    24000+0 records in
    24000+0 records out
    25165824000 bytes (25 GB) copied, 1044.25 s, 24.1 MB/s)

    real 17m37.884s
    user 0m0.020s
    sys 1m4.300s


    writing 2800 buffers of size 8m
    21.867 GB written in 645.56 (34 MB/s)

    real 10m46.502s
    user 0m0.044s
    sys 0m35.990s


    writing 2800 buffers of size 8m
    21.867 GB written in 634.55 (35 MB/s)

    real 10m35.448s
    user 0m0.036s
    sys 0m36.466s


    writing 2800 buffers of size 8m
    21.867 GB written in 642.00 (34 MB/s)

    real 10m42.890s
    user 0m0.044s
    sys 0m34.930s


    using fadvise()
    writing 2800 buffers of size 8m
    21.867 GB written in 639.49 (35 MB/s)

    real 10m40.384s
    user 0m0.036s
    sys 0m38.582s


    using fadvise()
    writing 2800 buffers of size 8m
    21.867 GB written in 636.17 (35 MB/s)

    real 10m37.061s
    user 0m0.024s
    sys 0m39.146s


    using fadvise()
    writing 2800 buffers of size 8m
    21.867 GB written in 636.07 (35 MB/s)

    real 10m37.003s
    user 0m0.060s
    sys 0m39.174s


    =======================================================
    500GB, 3.0Gbps Seagate SATA drive, x86-64, ext3, 2.6.29 vanilla

    First dd(1) creates the file, others simply rewrite it.
    =======================================================
    24000+0 records in
    24000+0 records out
    25165824000 bytes (25 GB) copied, 494.797 s, 50.9 MB/s)

    real 8m42.680s
    user 0m0.016s
    sys 0m58.176s


    24000+0 records in
    24000+0 records out
    25165824000 bytes (25 GB) copied, 498.295 s, 50.5 MB/s)

    real 8m27.505s
    user 0m0.016s
    sys 0m58.744s


    24000+0 records in
    24000+0 records out
    25165824000 bytes (25 GB) copied, 492.145 s, 51.1 MB/s)

    real 8m23.616s
    user 0m0.016s
    sys 0m59.064s


    writing 2800 buffers of size 8m
    21.867 GB written in 478.41 (46 MB/s)

    real 7m59.690s
    user 0m0.032s
    sys 0m33.210s


    writing 2800 buffers of size 8m
    21.867 GB written in 513.54 (43 MB/s)

    real 8m34.461s
    user 0m0.048s
    sys 0m33.342s


    writing 2800 buffers of size 8m
    21.867 GB written in 471.38 (47 MB/s)

    real 7m52.641s
    user 0m0.020s
    sys 0m33.486s


    using fadvise()
    writing 2800 buffers of size 8m
    21.867 GB written in 467.67 (47 MB/s)

    real 7m48.756s
    user 0m0.048s
    sys 0m36.838s


    using fadvise()
    writing 2800 buffers of size 8m
    21.867 GB written in 462.69 (48 MB/s)

    real 7m43.597s
    user 0m0.020s
    sys 0m37.462s


    using fadvise()
    writing 2800 buffers of size 8m
    21.867 GB written in 463.56 (48 MB/s)

    real 7m44.472s
    user 0m0.036s
    sys 0m37.342s


    [unhandled content-type:application/x-sh]
    \
     
     \ /
      Last update: 2009-04-03 10:35    [W:0.036 / U:29.584 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site