From: Johannes Weiner <hannes@cmpxchg.org>
To: Yafang Shao <laoar.shao@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>,
Andrew Morton <akpm@linux-foundation.org>,
Michal Hocko <mhocko@kernel.org>, Jens Axboe <axboe@kernel.dk>,
mgorman@suse.de, Steven Rostedt <rostedt@goodmis.org>,
mingo@redhat.com, Linux MM <linux-mm@kvack.org>,
linux-block@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 0/2] psi: enhance psi with the help of ebpf
Date: Tue, 31 Mar 2020 11:11:03 -0400 [thread overview]
Message-ID: <20200331151103.GB2089@cmpxchg.org> (raw)
In-Reply-To: <CALOAHbCe9msQ+7uON=7iXnud-hzDcrnz_2er4PMQRXtNLM2BSQ@mail.gmail.com>
On Fri, Mar 27, 2020 at 09:17:59AM +0800, Yafang Shao wrote:
> On Thu, Mar 26, 2020 at 10:31 PM Johannes Weiner <hannes@cmpxchg.org> wrote:
> >
> > On Thu, Mar 26, 2020 at 07:12:05AM -0400, Yafang Shao wrote:
> > > PSI gives us a powerful way to anaylze memory pressure issue, but we can
> > > make it more powerful with the help of tracepoint, kprobe, ebpf and etc.
> > > Especially with ebpf we can flexiblely get more details of the memory
> > > pressure.
> > >
> > > In orderc to achieve this goal, a new parameter is added into
> > > psi_memstall_{enter, leave}, which indicates the specific type of a
> > > memstall. There're totally ten memstalls by now,
> > > MEMSTALL_KSWAPD
> > > MEMSTALL_RECLAIM_DIRECT
> > > MEMSTALL_RECLAIM_MEMCG
> > > MEMSTALL_RECLAIM_HIGH
> > > MEMSTALL_KCOMPACTD
> > > MEMSTALL_COMPACT
> > > MEMSTALL_WORKINGSET_REFAULT
> > > MEMSTALL_WORKINGSET_THRASHING
> > > MEMSTALL_MEMDELAY
> > > MEMSTALL_SWAPIO
> >
> > What does this provide over the events tracked in /proc/vmstats?
> >
>
> /proc/vmstat only tells us which events occured, but it can't tell us
> how long these events take.
> Sometimes we really want to know how long the event takes and PSI can
> provide us the data
> For example, in the past days when I did performance tuning for a
> database service, I monitored that the latency spike is related with
> the workingset_refault counter in /proc/vmstat, and at that time I
> really want to know the spread of latencies caused by
> workingset_refault, but there's no easy way to get it. Now with newly
> added MEMSTALL_WORKINGSET_REFAULT, I can get the latencies caused by
> workingset refault.
Okay, but how do you use that information in practice?
> > Can you elaborate a bit how you are using this information? It's not
> > quite clear to me from the example in patch #2.
> >
>
> From the traced data in patch #2, we can find that the high latencies
> of user tasks are always type 7 of memstall , which is
> MEMSTALL_WORKINGSET_THRASHING, and then we should look into the
> details of wokingset of the user tasks and think about how to improve
> it - for example, by reducing the workingset.
That's an analyses we run frequently as well: we see high pressure,
and then correlate it with the events.
High rate of refaults? The workingset is too big.
High rate of compaction work? Somebody is asking for higher order
pages under load; check THP events next.
etc.
This works fairly reliably. I'm curious what the extra per-event
latency breakdown would add and where it would be helpful.
I'm not really opposed to your patches it if it is, I just don't see
the usecase right now.
next prev parent reply other threads:[~2020-03-31 15:11 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-26 11:12 Yafang Shao
2020-03-26 11:12 ` [PATCH 1/2] psi: introduce various types of memstall Yafang Shao
2020-03-26 11:12 ` [PATCH 2/2] psi, tracepoint: introduce tracepoints for psi_memstall_{enter, leave} Yafang Shao
2020-03-26 14:31 ` [PATCH 0/2] psi: enhance psi with the help of ebpf Johannes Weiner
2020-03-27 1:17 ` Yafang Shao
2020-03-31 15:11 ` Johannes Weiner [this message]
2020-04-01 1:22 ` Yafang Shao
2020-04-03 15:48 ` Johannes Weiner
2020-04-04 2:54 ` Yafang Shao
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=20200331151103.GB2089@cmpxchg.org \
--to=hannes@cmpxchg.org \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=laoar.shao@gmail.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=mhocko@kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
/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