summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Gardner <tim.gardner@canonical.com>2017-01-18 18:43:34 (GMT)
committerTim Gardner <tim.gardner@canonical.com>2017-02-20 03:57:58 (GMT)
commitaf80b83a2b6184fea27f050948146fcd9a28070d (patch)
treecf8abdf55339b262f44d7fd69078b92aa716dcb0
parent6c7537261c19ce03fb6508e0774220d40841904c (diff)
UBUNTU: [Config] CONFIG_DEFAULT_IOSCHED=cfq
Hi there, after several days of running (way too) many tests, I've got some data to show that it may be a good idea to drop the DEADLINE I/O scheduler for Zesty and move to CFQ with buffered writeback throttling (WBT) + WBT_MQ (WBT multi-queu) enabled. We originally moved to DEADLINE because of the issues with slow I/O (say to flash drives) causing applications to hang while blocked on the slow I/O being flushed out. It seems that with the recent 4.10 WBT driver and (possibly other block driver changes) we see some performance benefits also with CFQ, namely: 1. Faster boots. On a 8 thread Xeon CPU E3-1275 I'm seeing a reduction in usertime boots from 33.92s (Deadline) to ~24.5s (CFQ) See: http://kernel.ubuntu.com/~cking/wbt/iosched-boot.ods 2. Faster build times (yay!) and better performance when writing across multiple devices (especially when one of these is a slow flash device). See: http://kernel.ubuntu.com/~cking/wbt/blk-mq-sq.ods There are some places where CFQ + MQ is less performant than CFQ + MQ + SQ, and vice-versa. However, my general feeling for Zesty is that we should give this a try as it seems to work well. The config changes are: 1. disable CONFIG_DEFAULT_DEADLINE 2. enable CONFIG_DEFAULT_CFQ 3. enable CONFIG_BLK_WBT 4. enable CONFIG_BLK_WBT_MQ This will give us plenty of time to give this a good test in the next few months and revert them if we find any problematic corner cases. (The win on boot time, build times and writes to slow devices) is probably the most compelling choice for these changes IMHO. Colin King Signed-off-by: Tim Gardner <tim.gardner@canonical.com>
-rw-r--r--debian.master/config/config.common.ubuntu8
1 files changed, 4 insertions, 4 deletions
diff --git a/debian.master/config/config.common.ubuntu b/debian.master/config/config.common.ubuntu
index dfa66bf..bbe5224 100644
--- a/debian.master/config/config.common.ubuntu
+++ b/debian.master/config/config.common.ubuntu
@@ -953,7 +953,7 @@ CONFIG_BLK_DEV_ZONED=y
CONFIG_BLK_MQ_PCI=y
CONFIG_BLK_WBT=y
CONFIG_BLK_WBT_MQ=y
-CONFIG_BLK_WBT_SQ=y
+# CONFIG_BLK_WBT_SQ is not set
CONFIG_BLOCK=y
CONFIG_BLOCK_COMPAT=y
CONFIG_BL_SWITCHER=y
@@ -1957,12 +1957,12 @@ CONFIG_DECOMPRESS_LZ4=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_LZO=y
CONFIG_DECOMPRESS_XZ=y
-# CONFIG_DEFAULT_CFQ is not set
+CONFIG_DEFAULT_CFQ=y
CONFIG_DEFAULT_CUBIC=y
-CONFIG_DEFAULT_DEADLINE=y
+# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_HOSTNAME="(none)"
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_DEFAULT_IOSCHED="cfq"
CONFIG_DEFAULT_IO_DELAY_TYPE=1
# CONFIG_DEFAULT_NOOP is not set
# CONFIG_DEFAULT_RENO is not set