mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@osdl.org>
To: "roland" <devzero@web.de>, Jay Lan <jlan@engr.sgi.com>
Cc: "Fengguang Wu" <fengguang.wu@gmail.com>,
	<linux-kernel@vger.kernel.org>, <lserinol@gmail.com>
Subject: Re: I/O statistics per process
Date: Wed, 27 Sep 2006 15:55:49 -0700	[thread overview]
Message-ID: <20060927155549.4a69490d.akpm@osdl.org> (raw)
In-Reply-To: <008f01c6e27a$f9bd5460$962e8d52@aldipc>

On Wed, 27 Sep 2006 23:22:02 +0200
"roland" <devzero@web.de> wrote:

> thanks. tried to contact redflag, but they don`t answer. maybe support is 
> being on holiday.... !?
> 
> linux kernel hackers - there is really no standard way to watch i/o metrics 
> (bytes read/written) at process level?

The patch csa-accounting-taskstats-update.patch in current -mm kernels
(whcih is planned for 2.6.19) does have per-process chars-read and
chars-written accounting ("Extended accounting fields").  That's probably
not waht you really want, although it might tell you what you want to know.

> it`s extremly hard for the admin to track down, what process is hogging the 
> disk - especially if there is more than one task consuming cpu.

Sure.  Doing this is actually fairly tricky because disk writes are almost
always deferred.  We'd need to remember which process dirtied some memory,
then track that info all the way down to the disk IO level, then perform
the accounting operations at IO submit-time or completion time, on a
per-page basis.  It isn't rocket-science, but it's a lot of stuff and some
overhead.

> meanwhile i found blktrace and read into the documenation. looks really cool 
> and seems to be very powerful tool - but it it`s seems a little bit 
> "oversized" and not the right tool for this. seems to be for 
> tracing/debugging/analysis
> 
> what about http://lkml.org/lkml/2005/9/12/89  "with following patch, 
> userspace processes/utilities will be able to access per process I/O 
> statistics. for example, top like utilites can use this information" which 
> has been posted to lkml one year ago ? any update on this ?

csa-accounting-taskstats-update.patch makes that information available to
userspace.

But it's approximate, because

- it doesn't account for disk readahead

- it doesn't account for pagefault-initiated reads (althought it easily
  could - Jay?)

- it overaccounts for a process writing to an already-dirty page.

  (We could fix this too: nuke the existing stuff and do

	current->wchar += PAGE_CACHE_SIZE;

   in __set_page_dirty_[no]buffers().) (But that ends up being wrong if
   someone truncates the file before it got written)

- it doesn't account for file readahead (although it easily could)

- it doesn't account for pagefault-initiated readahead (it could)


hm.  There's actually quite a lot we could do here to make these fields
more accurate and useful.  A lot of this depends on what the definition of
these fields _is_.  Is is just for disk IO?  Is it supposed to include
console IO, or what?

  reply	other threads:[~2006-09-27 22:55 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-22 19:12 roland
     [not found] ` <20060924030415.GA11861@mail.ustc.edu.cn>
2006-09-24  3:04   ` Fengguang Wu
2006-09-27 21:22     ` roland
2006-09-27 22:55       ` Andrew Morton [this message]
2006-09-28 18:55         ` Jay Lan
2006-09-28 19:09           ` Andrew Morton
2006-09-28 20:05             ` roland
2006-09-28 22:00             ` Jay Lan
2006-09-28 22:14               ` Andrew Morton
2006-12-08  0:09                 ` roland
     [not found]                   ` <20061208012212.GA5796@mail.ustc.edu.cn>
2006-12-08  1:22                     ` Fengguang Wu
2006-12-08  8:55                       ` roland

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=20060927155549.4a69490d.akpm@osdl.org \
    --to=akpm@osdl.org \
    --cc=devzero@web.de \
    --cc=fengguang.wu@gmail.com \
    --cc=jlan@engr.sgi.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lserinol@gmail.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

all inboxes | Powered by JetHome®