From: Andrei Vagin <avagin@gmail.com>
To: David Ahern <dsahern@gmail.com>
Cc: Eugene Lubarsky <elubarsky.linux@gmail.com>,
linux-api@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, adobriyan@gmail.com
Subject: Re: [RFC PATCH 0/5] Introduce /proc/all/ to gather stats from all processes
Date: Thu, 13 Aug 2020 01:03:27 -0700 [thread overview]
Message-ID: <20200813080327.GA604888@gmail.com> (raw)
In-Reply-To: <ffc908a7-c94b-56e6-8bb6-c47c52747d77@gmail.com>
On Wed, Aug 12, 2020 at 10:47:32PM -0600, David Ahern wrote:
> On 8/12/20 1:51 AM, Andrei Vagin wrote:
> >
> > I rebased the task_diag patches on top of v5.8:
> > https://github.com/avagin/linux-task-diag/tree/v5.8-task-diag
>
> Thanks for updating the patches.
>
> >
> > /proc/pid files have three major limitations:
> > * Requires at least three syscalls per process per file
> > open(), read(), close()
> > * Variety of formats, mostly text based
> > The kernel spent time to encode binary data into a text format and
> > then tools like top and ps spent time to decode them back to a binary
> > format.
> > * Sometimes slow due to extra attributes
> > For example, /proc/PID/smaps contains a lot of useful informations
> > about memory mappings and memory consumption for each of them. But
> > even if we don't need memory consumption fields, the kernel will
> > spend time to collect this information.
>
> that's what I recall as well.
>
> >
> > More details and numbers are in this article:
> > https://avagin.github.io/how-fast-is-procfs
> >
> > This new interface doesn't have only one of these limitations, but
> > task_diag doesn't have all of them.
> >
> > And I compared how fast each of these interfaces:
> >
> > The test environment:
> > CPU: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz
> > RAM: 16GB
> > kernel: v5.8 with task_diag and /proc/all patches.
> > 100K processes:
> > $ ps ax | wc -l
> > 10228
>
> 100k processes but showing 10k here??
I'm sure that one zero has been escaped from here. task_proc_all shows
a number of tasks too and it shows 100230.
>
> >
> > $ time cat /proc/all/status > /dev/null
> >
> > real 0m0.577s
> > user 0m0.017s
> > sys 0m0.559s
> >
> > task_proc_all is used to read /proc/pid/status for all tasks:
> > https://github.com/avagin/linux-task-diag/blob/master/tools/testing/selftests/task_diag/task_proc_all.c
> >
> > $ time ./task_proc_all status
> > tasks: 100230
> >
Thanks,
Andrei
next prev parent reply other threads:[~2020-08-13 8:03 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-10 14:58 [RFC PATCH 0/5] Introduce /proc/all/ to gather stats from all processes Eugene Lubarsky
2020-08-10 14:58 ` [RFC PATCH 1/5] fs/proc: Introduce /proc/all/stat Eugene Lubarsky
2020-08-10 18:21 ` kernel test robot
2020-08-10 14:58 ` [RFC PATCH 2/5] fs/proc: Introduce /proc/all/statm Eugene Lubarsky
2020-08-10 14:58 ` [RFC PATCH 3/5] fs/proc: Introduce /proc/all/status Eugene Lubarsky
2020-08-10 14:58 ` [RFC PATCH 4/5] fs/proc: Introduce /proc/all/io Eugene Lubarsky
2020-08-10 14:58 ` [RFC PATCH 5/5] fs/proc: Introduce /proc/all/statx Eugene Lubarsky
2020-08-10 15:04 ` [RFC PATCH 0/5] Introduce /proc/all/ to gather stats from all processes Greg KH
2020-08-10 15:27 ` Eugene Lubarsky
2020-08-10 15:41 ` Greg KH
2020-08-25 9:59 ` Eugene Lubarsky
2020-08-12 7:51 ` Andrei Vagin
2020-08-13 4:47 ` David Ahern
2020-08-13 8:03 ` Andrei Vagin [this message]
2020-08-13 15:01 ` Eugene Lubarsky
2020-08-20 17:41 ` Andrei Vagin
2020-08-25 10:00 ` Eugene Lubarsky
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=20200813080327.GA604888@gmail.com \
--to=avagin@gmail.com \
--cc=adobriyan@gmail.com \
--cc=dsahern@gmail.com \
--cc=elubarsky.linux@gmail.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.