1 |
From 68017e5d87a2477d40476f1a0a06f202ee79316b Mon Sep 17 00:00:00 2001 |
2 |
From: Paolo Valente <paolo.valente@linaro.org> |
3 |
Date: Mon, 13 Nov 2017 07:34:07 +0100 |
4 |
Subject: [PATCH] doc, block, bfq: update max IOPS sustainable with BFQ |
5 |
|
6 |
We have investigated more deeply the performance of BFQ, in terms of |
7 |
number of IOPS that can be processed by the CPU when BFQ is used as |
8 |
I/O scheduler. In more detail, using the script [1], we have measured |
9 |
the number of IOPS reached on top of a null block device configured |
10 |
with zero latency, as a function of the workload (sequential read, |
11 |
sequential write, random read, random write) and of the system (we |
12 |
considered desktops, laptops and embedded systems). |
13 |
|
14 |
Basing on the resulting figures, with this commit we update the |
15 |
current, conservative IOPS range reported in BFQ documentation. In |
16 |
particular, the documentation now reports, for each of three different |
17 |
systems, the lowest number of IOPS obtained for that system with the |
18 |
above test (namely, the value obtained with the workload leading to |
19 |
the lowest IOPS). |
20 |
|
21 |
[1] https://github.com/Algodev-github/IOSpeed |
22 |
|
23 |
Reviewed-by: Lee Tibbert <lee.tibbert@gmail.com> |
24 |
Signed-off-by: Paolo Valente <paolo.valente@linaro.org> |
25 |
Signed-off-by: Luca Miccio <lucmiccio@gmail.com> |
26 |
Signed-off-by: Jens Axboe <axboe@kernel.dk> |
27 |
--- |
28 |
Documentation/block/bfq-iosched.txt | 17 +++++++++++------ |
29 |
1 file changed, 11 insertions(+), 6 deletions(-) |
30 |
|
31 |
diff --git a/Documentation/block/bfq-iosched.txt b/Documentation/block/bfq-iosched.txt |
32 |
index 3d6951d63489..7a9361508157 100644 |
33 |
--- a/Documentation/block/bfq-iosched.txt |
34 |
+++ b/Documentation/block/bfq-iosched.txt |
35 |
@@ -20,12 +20,17 @@ for that device, by setting low_latency to 0. See Section 3 for |
36 |
details on how to configure BFQ for the desired tradeoff between |
37 |
latency and throughput, or on how to maximize throughput. |
38 |
|
39 |
-On average CPUs, the current version of BFQ can handle devices |
40 |
-performing at most ~30K IOPS; at most ~50 KIOPS on faster CPUs. As a |
41 |
-reference, 30-50 KIOPS correspond to very high bandwidths with |
42 |
-sequential I/O (e.g., 8-12 GB/s if I/O requests are 256 KB large), and |
43 |
-to 120-200 MB/s with 4KB random I/O. BFQ is currently being tested on |
44 |
-multi-queue devices too. |
45 |
+BFQ has a non-null overhead, which limits the maximum IOPS that the |
46 |
+CPU can process for a device scheduled with BFQ. To give an idea of |
47 |
+the limits on slow or average CPUs, here are BFQ limits for three |
48 |
+different CPUs, on, respectively, an average laptop, an old desktop, |
49 |
+and a cheap embedded system, in case full hierarchical support is |
50 |
+enabled (i.e., CONFIG_BFQ_GROUP_IOSCHED is set): |
51 |
+- Intel i7-4850HQ: 250 KIOPS |
52 |
+- AMD A8-3850: 170 KIOPS |
53 |
+- ARM CortexTM-A53 Octa-core: 45 KIOPS |
54 |
+ |
55 |
+BFQ works for multi-queue devices too. |
56 |
|
57 |
The table of contents follow. Impatients can just jump to Section 3. |
58 |
|
59 |
-- |
60 |
2.13.6 |
61 |
|