All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Spray <john.spray@redhat.com>
To: Robert LeBlanc <robert@leblancnet.us>
Cc: Sage Weil <sage@newdream.net>, Gregory Farnum <greg@gregs42.com>,
	ceph-devel <ceph-devel@vger.kernel.org>
Subject: Re: rbd top
Date: Mon, 15 Jun 2015 17:52:41 +0100	[thread overview]
Message-ID: <557F02D9.1040303@redhat.com> (raw)
In-Reply-To: <CAANLjFpCt9tMhkkZ+eECXpvpXOgTCoS8wu6OEuA6S89Vbdfv_Q@mail.gmail.com>



On 15/06/2015 17:10, Robert LeBlanc wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> John, let me see if I understand what you are saying...
>
> When a person runs `rbd top`, each OSD would receive a message saying
> please capture all the performance, grouped by RBD and limit it to
> 'X'. That way the OSD doesn't have to constantly update performance
> for each object, but when it is requested it starts tracking it?

Right, initially the OSD isn't collecting anything, it starts as soon as 
it sees a query get loaded up (published via OSDMap or some other 
mechanism).

That said, in practice I can see people having some set of queries that 
they always have loaded and feeding into graphite in the background.
>
> If so, that is an interesting idea. I wonder if that would be simpler
> than tracking the performance of each/MRU objects in some format like
> /proc/diskstats where it is in memory and not necessarily consistent.
> The benefit is that you could have "lifelong" stats that show up like
> iostat and it would be a simple operation.

Hmm, not sure we're on the same page about this part, what I'm talking 
about is all in memory and would be lost across daemon restarts.  Some 
other component would be responsible for gathering the stats across all 
the daemons in one place (that central part could persist stats if desired).

> Each object should be able
> to reference back to RBD/CephFS upon request and the client could even
> be responsible for that load. Client performance data would need stats
> in addition to the object stats.

You could extend the mechanism to clients.  However, as much as possible 
it's a good thing to keep it server side, as servers are generally fewer 
(still have to reduce these stats across N servers to present to user), 
and we have multiple client implementations (kernel/userspace).  What 
kind of thing do you want to get from clients?
> My concern is that adding additional SQL like logic to each op is
> going to get very expensive. I guess if we could push that to another
> thread early in the op, then it might not be too bad. I'm enjoying the
> discussion and new ideas.

Hopefully in most cases the query can be applied very cheaply, for 
operations like comparing pool ID or grouping by client ID. However, I 
would also envisage an optional sampling number, such that e.g. only 1 
in every 100 ops would go through the query processing.  Useful for 
systems where keeping highest throughput is paramount, and the numbers 
will still be useful if clients are doing many thousands of ops per second.

Cheers,
John

  reply	other threads:[~2015-06-15 16:52 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-11 19:33 rbd top Robert LeBlanc
2015-06-15 11:52 ` Gregory Farnum
2015-06-15 13:52   ` Sage Weil
2015-06-15 15:03     ` John Spray
2015-06-15 16:10       ` Robert LeBlanc
2015-06-15 16:52         ` John Spray [this message]
2015-06-16 11:05           ` Wido den Hollander
2015-06-17 17:06             ` Robert LeBlanc
2015-06-17 17:59               ` John Spray
2015-06-16 10:04       ` Gregory Farnum
2015-06-15 16:28     ` Robert LeBlanc

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=557F02D9.1040303@redhat.com \
    --to=john.spray@redhat.com \
    --cc=ceph-devel@vger.kernel.org \
    --cc=greg@gregs42.com \
    --cc=robert@leblancnet.us \
    --cc=sage@newdream.net \
    /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.