On Fri, Apr 24, 2009 at 6:07 PM, Corrado Zoccolo wrote: > Ok, this is the first patch of the series, and contains code cleanup > needed before changing read/write to sync/async. No behavioral change > is introduced by this patch. > And this one is the second patch, that changes read/write to sync vs. async. fsync-tester results,with while : ; do time sh -c "dd if=/dev/zero of=bigfile bs=8M count=256 ; sync; rm bigfile"; done: running in the background ./fsync-tester fsync time: 0.6383 fsync time: 0.1835 fsync time: 0.1744 fsync time: 0.1103 fsync time: 0.1535 fsync time: 0.1545 fsync time: 0.1491 fsync time: 0.1524 fsync time: 0.1609 fsync time: 0.1168 fsync time: 0.1458 fsync time: 0.1328 fsync time: 0.1655 fsync time: 0.1731 fsync time: 0.1356 fsync time: 0.1746 fsync time: 0.1166 fsync time: 0.1609 fsync time: 0.1370 fsync time: 0.1379 fsync time: 0.2096 fsync time: 0.1438 fsync time: 0.1652 fsync time: 0.1612 fsync time: 0.1438 compared with original deadline: fsync time: 0.7963 fsync time: 4.5914 fsync time: 4.2347 fsync time: 1.1670 fsync time: 0.8164 fsync time: 1.9783 fsync time: 4.9726 fsync time: 2.4929 fsync time: 2.5448 fsync time: 3.9627 Usual tio-test, 32 threads 80Mb each: Tiotest results for 32 concurrent io threads: ,----------------------------------------------------------------------. | Item | Time | Rate | Usr CPU | Sys CPU | +-----------------------+----------+--------------+----------+---------+ | Write 2560 MBs | 103.6 s | 24.705 MB/s | 9.7 % | 495.6 % | | Random Write 125 MBs | 95.9 s | 1.304 MB/s | -1.9 % | 23.8 % | | Read 2560 MBs | 164.3 s | 15.580 MB/s | 3.5 % | 70.1 % | | Random Read 125 MBs | 129.7 s | 0.964 MB/s | -0.0 % | 16.2 % | `----------------------------------------------------------------------' Tiotest latency results: ,-------------------------------------------------------------------------. | Item | Average latency | Maximum latency | % >2 sec | % >10 sec | +--------------+-----------------+-----------------+----------+-----------+ | Write | 4.040 ms | 8949.999 ms | 0.07614 | 0.00000 | | Random Write | 1.252 ms | 5439.023 ms | 0.03125 | 0.00000 | | Read | 7.920 ms | 792.899 ms | 0.00000 | 0.00000 | | Random Read | 123.807 ms | 910.263 ms | 0.00000 | 0.00000 | |--------------+-----------------+-----------------+----------+-----------| | Total | 8.613 ms | 8949.999 ms | 0.03703 | 0.00000 | `--------------+-----------------+-----------------+----------+-----------' compared with original deadline: Tiotest results for 32 concurrent io threads: ,----------------------------------------------------------------------. | Item | Time | Rate | Usr CPU | Sys CPU | +-----------------------+----------+--------------+----------+---------+ | Write 2560 MBs | 103.0 s | 24.848 MB/s | 10.6 % | 522.2 % | | Random Write 125 MBs | 98.8 s | 1.265 MB/s | -1.6 % | 16.1 % | | Read 2560 MBs | 166.2 s | 15.400 MB/s | 4.2 % | 82.7 % | | Random Read 125 MBs | 193.3 s | 0.647 MB/s | -0.8 % | 14.5 % | `----------------------------------------------------------------------' Tiotest latency results: ,-------------------------------------------------------------------------. | Item | Average latency | Maximum latency | % >2 sec | % >10 sec | +--------------+-----------------+-----------------+----------+-----------+ | Write | 4.122 ms | 17922.920 ms | 0.07980 | 0.00061 | | Random Write | 0.599 ms | 1245.200 ms | 0.00000 | 0.00000 | | Read | 8.032 ms | 1125.759 ms | 0.00000 | 0.00000 | | Random Read | 181.968 ms | 972.657 ms | 0.00000 | 0.00000 | |--------------+-----------------+-----------------+----------+-----------| | Total | 10.044 ms | 17922.920 ms | 0.03804 | 0.00029 | `--------------+-----------------+-----------------+----------+-----------' We see the improvement on random read (not as pronounced as with full set of heuristics, but still noticeable) and smaller increase on random write latency, but this will not harm, since now we have distinction between sync vs async reads. I can test which of the other heuristics will provide the other few % of improvements on random read if you are interested. Otherwise, I'm more inclined on submitting an other patch to add io-priorities to this series. -- __________________________________________________________________________ dott. Corrado Zoccolo mailto:czoccolo@gmail.com PhD - Department of Computer Science - University of Pisa, Italy --------------------------------------------------------------------------