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
next prev parent 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.