[sheepdog] [PATCH v2] sheep: make sheep request stat finer
Liu Yuan
namei.unix at gmail.com
Mon Jan 6 08:30:42 CET 2014
On Mon, Jan 06, 2014 at 04:24:28PM +0900, Hitoshi Mitake wrote:
> At Sun, 5 Jan 2014 01:11:32 +0800,
> Liu Yuan wrote:
> >
> > With this patch we can poke more information about the node stat:
> >
> > $ dog node stat -w
> >
> > ...
> > Client 12 340681 100459 233694 0 6528 44 GB 26 GB 95 MB 0.0 MB
> > Peer 6 41013 4008 37005 0 0 8.6 GB 3.9 GB 23 MB 0.0 MB
> > Request Active Total Write Read Remove Flush All WR All RD WRBW RDBW
> > Client 5 341362 100459 234375 0 6528 44 GB 26 GB 98 MB 0.0 MB
> > Peer 0 41128 4008 37120 0 0 8.6 GB 3.9 GB 24 MB 0.0 MB
> > Request Active Total Write Read Remove Flush All WR All RD WRBW RDBW
> > Client 0 341969 100459 234982 0 6528 44 GB 26 GB 92 MB 0.0 MB
> > Peer 0 41220 4008 37212 0 0 8.6 GB 3.9 GB 24 MB 0.0 MB
> > Request Active Total Write Read Remove Flush All WR All RD WRBW RDBW
> > Client 8 342584 100459 235597 0 6528 44 GB 26 GB 113 MB 0.0 MB
> > Peer 0 41335 4008 37327 0 0 8.6 GB 3.9 GB 23 MB 0.0 MB
> > Request Active Total Write Read Remove Flush All WR All RD WRBW RDBW
> > Client 6 343069 100460 236081 0 6528 44 GB 26 GB 86 MB 4.0 MB
> > Peer 2 41429 4009 37420 0 0 8.7 GB 3.9 GB 26 MB 1.0 MB
> > ...
> >
> > Signed-off-by: Liu Yuan <namei.unix at gmail.com>
> > ---
> > dog/node.c | 64 ++++++++++++++++++++++++++++++++++++------------
> > include/internal_proto.h | 7 ++++++
> > sheep/request.c | 34 +++++++++++++++++++++++++
> > 3 files changed, 90 insertions(+), 15 deletions(-)
> >
> > diff --git a/dog/node.c b/dog/node.c
> > index f896078..71486a0 100644
> > --- a/dog/node.c
> > +++ b/dog/node.c
> > @@ -275,9 +275,9 @@ static int node_stat(int argc, char **argv)
> > {
> > struct sd_req hdr;
> > struct sd_rsp *rsp = (struct sd_rsp *)&hdr;
> > - struct sd_stat stat;
> > + struct sd_stat stat, last;
> > int ret;
> > - uint32_t i = node_cmd_data.watch ? UINT32_MAX : 0;
> > + bool watch = node_cmd_data.watch ? true : false, first = true;
> >
> > again:
> > sd_init_req(&hdr, SD_OP_STAT);
> > @@ -292,21 +292,55 @@ again:
> > return EXIT_FAILURE;
> > }
> >
> > - printf("%s%"PRIu64"\t%"PRIu64"\t%s\t%s\n",
> > - raw_output ? "" :
> > - "Request\tActive\tTotal\tIn\tOut\nClient\t",
> > - stat.r.gway_active_nr, stat.r.gway_total_nr,
> > - strnumber(stat.r.gway_total_rx),
> > - strnumber(stat.r.gway_total_tx));
> > - printf("%s%"PRIu64"\t%"PRIu64"\t%s\t%s\n",
> > - raw_output ? "" : "Peer\t",
> > - stat.r.peer_active_nr, stat.r.peer_total_nr,
> > - strnumber(stat.r.peer_total_rx),
> > - strnumber(stat.r.peer_total_tx));
> > - if (i > 0) {
> > - clear_screen();
>
> Why did you remove clear_screen()? I think it is useful when user
> invokes dog node stat with -w option.
Its because most of linux tools like iostat, dstat, vmstat..etc.. they all print
new lines after old ones. I just respect this tradition and the old value is
sometimes really useful.
Thanks
Yuan
More information about the sheepdog
mailing list