From: Ming Lei <ming.lei@redhat.com>
To: Dexuan Cui <decui@microsoft.com>
Cc: Jens Axboe <axboe@kernel.dk>, 'Christoph Hellwig' <hch@lst.de>,
"'linux-block@vger.kernel.org'" <linux-block@vger.kernel.org>,
Long Li <longli@microsoft.com>,
"Michael Kelley (LINUX)" <mikelley@microsoft.com>,
"'linux-kernel@vger.kernel.org'" <linux-kernel@vger.kernel.org>
Subject: Re: Random high CPU utilization in blk-mq with the none scheduler
Date: Mon, 13 Dec 2021 15:38:07 +0800 [thread overview]
Message-ID: <Ybb4X00rfsjRgHj7@T590> (raw)
In-Reply-To: <BYAPR21MB127006555030F7BFA47FDAABBF749@BYAPR21MB1270.namprd21.prod.outlook.com>
On Mon, Dec 13, 2021 at 04:20:49AM +0000, Dexuan Cui wrote:
> > From: Ming Lei <ming.lei@redhat.com>
> > ...
> > Can you provide the following blk-mq debugfs log?
> >
> > (cd /sys/kernel/debug/block/dm-N && find . -type f -exec grep -aH . {} \;)
> >
> > (cd /sys/kernel/debug/block/sdN && find . -type f -exec grep -aH . {} \;)
> >
> > And it is enough to just collect log from one dm-mpath & one underlying iscsi
> > disk,
> > so we can understand basic blk-mq setting, such as nr_hw_queues, queue
> > depths, ...
> >
> > Thanks,
> > Ming
>
> Attached. I collected the logs for all the dm-* and sd* devices against
> v5.16-rc4 with the 3 commits reverted:
> b22809092c70 ("block: replace always false argument with 'false'")
> ff1552232b36 ("blk-mq: don't issue request directly in case that current is to be blocked")
> dc5fc361d891 ("block: attempt direct issue of plug list")
>
> v5.16-rc4 does not reproduce the issue, so I'm pretty sure b22809092c70 is the
> patch that resolves the excessive CPU usage.
From the log:
1) dm-mpath:
- queue depth: 2048
- busy: 848, and 62 of them are in sw queue, so run queue is often
caused
- nr_hw_queues: 1
- dm-2 is in use, and dm-1/dm-3 is idle
- dm-2's dispatch busy is 8, that should be the reason why excessive CPU
usage is observed when flushing plug list without commit dc5fc361d891 in
which hctx->dispatch_busy is just bypassed
2) iscsi
- dispatch_busy is 0
- nr_hw_queues: 1
- queue depth: 113
- busy=~33, active_queues is 3, so each LUN/iscsi host is saturated
- 23 active LUNs, 23 * 33 = 759 in-flight commands
The high CPU utilization may be caused by:
1) big queue depth of dm mpath, the situation may be improved much if it
is reduced to 1024 or 800. The max allowed inflight commands from iscsi
hosts can be figured out, if dm's queue depth is much more than this number,
the extra commands need to dispatch, and run queue can be scheduled
immediately, so high CPU utilization is caused.
2) single hw queue, so contention should be big, which should be avoided
in big machine, nvme-tcp might be better than iscsi here
3) iscsi io latency is a bit big
Even CPU utilization is reduced by commit dc5fc361d891, io performance
can't be good too with v5.16-rc, I guess.
Thanks,
Ming
next prev parent reply other threads:[~2021-12-13 7:38 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-10 3:30 Random high CPU utilization in blk-mq with the none scheduler Dexuan Cui
2021-12-11 1:29 ` Dexuan Cui
2021-12-11 2:04 ` Jens Axboe
2021-12-11 3:10 ` Dexuan Cui
2021-12-11 3:15 ` Jens Axboe
2021-12-11 3:44 ` Dexuan Cui
2021-12-11 7:09 ` Dexuan Cui
2021-12-11 14:21 ` Jens Axboe
2021-12-11 18:54 ` Dexuan Cui
2021-12-13 18:43 ` Jens Axboe
2021-12-14 0:43 ` Dexuan Cui
2021-12-13 3:23 ` Ming Lei
2021-12-13 4:20 ` Dexuan Cui
2021-12-13 7:38 ` Ming Lei [this message]
2021-12-14 0:31 ` Dexuan Cui
2021-12-14 0:53 ` Ming Lei
2021-12-14 3:09 ` Dexuan Cui
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Ybb4X00rfsjRgHj7@T590 \
--to=ming.lei@redhat.com \
--cc=axboe@kernel.dk \
--cc=decui@microsoft.com \
--cc=hch@lst.de \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=longli@microsoft.com \
--cc=mikelley@microsoft.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox