[PATCH] Add rusage reporting to procstat
John Baldwin
jhb at freebsd.org
Tue Jan 15 20:27:59 UTC 2013
On Monday, January 14, 2013 5:44:42 pm Konstantin Belousov wrote:
> On Mon, Jan 14, 2013 at 04:39:17PM -0500, John Baldwin wrote:
> > This patch adds a new -r flag to dump the resource usage information (what
you
> > would get from getrusage() or wait()) for a given process. Sample output:
> >
> > % procstat -r $$
> > PID COMM TYPE VALUE
> > 1428 tcsh user time 00:00:00.050182
> > 1428 tcsh system time 00:00:00.040145
> > 1428 tcsh maximum RSS 3328 B
> > 1428 tcsh integral shared memory 2844 B
> > 1428 tcsh integral unshared data 6372 B
> > 1428 tcsh integral unshared stack 1152 B
> > 1428 tcsh page reclaims 1306
> > 1428 tcsh page faults 12
> > 1428 tcsh swaps 0
> > 1428 tcsh block reads 50
> > 1428 tcsh block writes 0
> > 1428 tcsh messages sent 172
> > 1428 tcsh messages received 0
> > 1428 tcsh signals received 33
> > 1428 tcsh voluntary context switches 1167
> > 1428 tcsh involuntary context switches 1
> >
> > http://www.FreeBSD.org/~jhb/patches/procstat_rusage.patch
> >
> > Any thoughts, etc.?
>
> It looks fine, but use of the human-oriented resource values, together
> with spaces in names, makes the parsing of the output unfeasible.
Yes, but that is par for the course with procstat. If we wanted to add a
global flag to request machine-readable output and update the various procstat
backends to honor it, I think that would be a great project.
> The patch only reports the process-cumulative rusage, and not the per-thread
> rusage, it seems.
Yes, this is true. It operates on the process-wide kinfo that procstat has
handy. It would not be too hard to add a thread mode (-H flag perhaps?) to
have it request the kinfo_proc structures for all threads and then output
those separately.
--
John Baldwin
More information about the freebsd-current
mailing list