Multiple Sequential Reader vs Multiple Sequential Reader =============================================== Vanilla CFQ ----------------------------------- [Multiple Sequential Reader] [Multiple Sequential Reader] nr Max-bandw Min-bandw Agg-bandw Max-latency nr Agg-bandw Max-latency 16 1015KB/s 293KB/s 13705KB/s 2573K usec 1 714KB/s 1619K usec 16 885KB/s 263KB/s 12372KB/s 2110K usec 2 1507KB/s 1890K usec 16 833KB/s 248KB/s 11156KB/s 1924K usec 4 2276KB/s 1924K usec 16 679KB/s 180KB/s 9351KB/s 2368K usec 8 4136KB/s 2367K usec 16 518KB/s 149KB/s 6739KB/s 3168K usec 16 6626KB/s 3169K usec IO scheduler controller + CFQ ----------------------------------- [Multiple Sequential Reader] [Multiple Sequential Reader] nr Max-bandw Min-bandw Agg-bandw Max-latency nr Agg-bandw Max-latency 16 513KB/s 167KB/s 7003KB/s 3415K usec 1 5826KB/s 427K usec 16 505KB/s 169KB/s 6892KB/s 3245K usec 2 6553KB/s 334K usec 16 514KB/s 123KB/s 6939KB/s 3457K usec 4 6556KB/s 1013K usec 16 495KB/s 130KB/s 6808KB/s 3148K usec 8 6591KB/s 1648K usec 16 502KB/s 124KB/s 6717KB/s 3132K usec 16 6481KB/s 3132K usec dm-ioaband + CFQ ----------------------------------- [Multiple Sequential Reader] [Multiple Sequential Reader] nr Max-bandw Min-bandw Agg-bandw Max-latency nr Agg-bandw Max-latency 16 944KB/s 278KB/s 11020KB/s 1468K usec 1 1749KB/s 1438K usec 16 809KB/s 305KB/s 9110KB/s 1456K usec 2 3709KB/s 1330K usec 16 834KB/s 228KB/s 8162KB/s 1751K usec 4 4941KB/s 1717K usec 16 730KB/s 179KB/s 8367KB/s 2098K usec 8 5485KB/s 2095K usec 16 630KB/s 166KB/s 7197KB/s 2851K usec 16 6446KB/s 2795K usec Note: - For the samples of 1, 2 and 4 sequential readers, the max latencies should have been low but these are still high. This is probably due to the fact that CFQ does not know about groups and it will still run random reader queue in round robin manner. If we do excessive throttling to improve latencies, then throughput will suffer because every sequential queue will get small slice and move on to next queue hence increasing number of seeks.