Re: CBT: New RGW getput benchmark and testing diary

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Mark,

There are rgw and rados-level throttling parameters.  There are known issues of fairness.  The only scenario we know of where something like the "deadlock" you're theorizing can happen is possible only when byte-throttling is incorrectly configured.

Matt

----- Original Message -----
> From: "Mark Nelson" <mnelson@xxxxxxxxxx>
> To: "Orit Wasserman" <owasserm@xxxxxxxxxx>
> Cc: "Matt Benjamin" <mbenjamin@xxxxxxxxxx>, "ceph-devel" <ceph-devel@xxxxxxxxxxxxxxx>, cbt@xxxxxxxxxxxxxx, "Mark
> Seger" <mjseger@xxxxxxxxx>, "Kyle Bader" <kbader@xxxxxxxxxx>, "Karan Singh" <karan@xxxxxxxxxx>, "Brent Compton"
> <bcompton@xxxxxxxxxx>
> Sent: Tuesday, February 7, 2017 10:23:05 AM
> Subject: Re: CBT: New RGW getput benchmark and testing diary
> 
> 
> 
> On 02/07/2017 09:03 AM, Orit Wasserman wrote:
> > On Tue, Feb 7, 2017 at 4:47 PM, Mark Nelson <mnelson@xxxxxxxxxx> wrote:
> >> Hi Orit,
> >>
> >> This was a pull from master over the weekend:
> >> 5bf39156d8312d65ef77822fbede73fd9454591f
> >>
> >> Btw, I've been noticing that it appears when bucket index sharding is
> >> used,
> >> there's a higher likelyhood that client connection attempts are delayed or
> >> starved out entirely under high concurrency.  I haven't looked at the code
> >> yet, does this match with what you'd expect to happen?  I assume the
> >> threadpool is shared?
> >>
> > yes it is shared.
> 
> Ok, so that probably explains the behavior I'm seeing.  Perhaps a more
> serious issue:  Do we have anything in place to stop a herd of clients
> from connecting, starving out bucket index lookups, and making
> everything deadlock?
> 
> >
> >> Mark
> >>
> >>
> >> On 02/07/2017 07:50 AM, Orit Wasserman wrote:
> >>>
> >>> Mark,
> >>> On what version did you run the tests?
> >>>
> >>> Orit
> >>>
> >>> On Mon, Feb 6, 2017 at 7:07 PM, Mark Nelson <mnelson@xxxxxxxxxx> wrote:
> >>>>
> >>>>
> >>>>
> >>>> On 02/06/2017 11:02 AM, Orit Wasserman wrote:
> >>>>>
> >>>>>
> >>>>> On Mon, Feb 6, 2017 at 5:44 PM, Matt Benjamin <mbenjamin@xxxxxxxxxx>
> >>>>> wrote:
> >>>>>>
> >>>>>>
> >>>>>> Keep in mind, RGW does most of its request processing work in civetweb
> >>>>>> threads, so high utilization there does not necessarily imply
> >>>>>> civetweb-internal processing.
> >>>>>>
> >>>>>
> >>>>> True but the request processing is not a CPU intensive operation.
> >>>>> It does seems to indicate that the civetweb threading model simply
> >>>>> doesn't scale (we already noticed it already) or maybe it can point to
> >>>>> some locking issue. We need to run a profiler to understand what is
> >>>>> consuming CPU.
> >>>>> It maybe a simple fix until we move to asynchronous frontend.
> >>>>> It worth investigating as the CPU usage mark is seeing  is really high.
> >>>>
> >>>>
> >>>>
> >>>> The initial profiling I did definitely showed a lot of tcmalloc
> >>>> threading
> >>>> activity, which diminshed after increasing threadcache.  This is quite
> >>>> similar to what we saw in simplemessenger with low threadcache values,
> >>>> though likely is less true with async messenger.  Sadly a profiler like
> >>>> perf
> >>>> probably isn't going to help much with debugging lock contention.
> >>>> grabbing
> >>>> GDB stack traces might help, or lttng.
> >>>>
> >>>>>
> >>>>> Mark,
> >>>>> How many concurrent request were handled?
> >>>>
> >>>>
> >>>>
> >>>> Most of the tests had 128 concurrent IOs per radosgw daemon.  The max
> >>>> thread
> >>>> count was increased to 512.  It was very obvious when exceeding the
> >>>> thread
> >>>> count since some getput processes will end up stalling and doing their
> >>>> writes after others, leading to bogus performance data.
> >>>>
> >>>>
> >>>>>
> >>>>> Orit
> >>>>>
> >>>>>> Matt
> >>>>>>
> >>>>>> ----- Original Message -----
> >>>>>>>
> >>>>>>>
> >>>>>>> From: "Mark Nelson" <mnelson@xxxxxxxxxx>
> >>>>>>> To: "Matt Benjamin" <mbenjamin@xxxxxxxxxx>
> >>>>>>> Cc: "ceph-devel" <ceph-devel@xxxxxxxxxxxxxxx>, cbt@xxxxxxxxxxxxxx,
> >>>>>>> "Mark
> >>>>>>> Seger" <mjseger@xxxxxxxxx>, "Kyle Bader"
> >>>>>>> <kbader@xxxxxxxxxx>, "Karan Singh" <karan@xxxxxxxxxx>, "Brent
> >>>>>>> Compton"
> >>>>>>> <bcompton@xxxxxxxxxx>
> >>>>>>> Sent: Monday, February 6, 2017 10:42:04 AM
> >>>>>>> Subject: Re: CBT: New RGW getput benchmark and testing diary
> >>>>>>>
> >>>>>>> Just based on what I saw during these tests, it looks to me like a
> >>>>>>> lot
> >>>>>>> more time was spent dealing with civetweb's threads than RGW.  I
> >>>>>>> didn't
> >>>>>>> look too closely, but it may be worth looking at whether there's any
> >>>>>>> low
> >>>>>>> hanging fruit in civetweb itself.
> >>>>>>>
> >>>>>>> Mark
> >>>>>>>
> >>>>>>> On 02/06/2017 09:33 AM, Matt Benjamin wrote:
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> Thanks for the detailed effort and analysis, Mark.
> >>>>>>>>
> >>>>>>>> As we get closer to the L time-frame, it should become relevant to
> >>>>>>>> look
> >>>>>>>> at
> >>>>>>>> the relative boost::asio frontend rework i/o paths, which are the
> >>>>>>>> open
> >>>>>>>> effort to reduce CPU overhead/revise threading model, in general.
> >>>>>>>>
> >>>>>>>> Matt
> >>>>>>>>
> >>>>>>>> ----- Original Message -----
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> From: "Mark Nelson" <mnelson@xxxxxxxxxx>
> >>>>>>>>> To: "ceph-devel" <ceph-devel@xxxxxxxxxxxxxxx>, cbt@xxxxxxxxxxxxxx
> >>>>>>>>> Cc: "Mark Seger" <mjseger@xxxxxxxxx>, "Kyle Bader"
> >>>>>>>>> <kbader@xxxxxxxxxx>,
> >>>>>>>>> "Karan Singh" <karan@xxxxxxxxxx>, "Brent
> >>>>>>>>> Compton" <bcompton@xxxxxxxxxx>
> >>>>>>>>> Sent: Monday, February 6, 2017 12:55:20 AM
> >>>>>>>>> Subject: CBT: New RGW getput benchmark and testing diary
> >>>>>>>>>
> >>>>>>>>> Hi All,
> >>>>>>>>>
> >>>>>>>>> Over the weekend I took a stab at improving our ability to run RGW
> >>>>>>>>> performance tests in CBT.  Previously the only way to do this was
> >>>>>>>>> to
> >>>>>>>>> use
> >>>>>>>>> the cosbench plugin, which required a fair amount of additional
> >>>>>>>>> setup and while quite powerful can be overkill in situations where
> >>>>>>>>> you
> >>>>>>>>> want to rapidly iterate over tests looking for specific issues.  A
> >>>>>>>>> while
> >>>>>>>>> ago Mark Seger from HP told me he had created a swift benchmark
> >>>>>>>>> called
> >>>>>>>>> "getput" that is written in python and is much more convenient to
> >>>>>>>>> run
> >>>>>>>>> quickly in an automated fashion.  Normally getput is used in
> >>>>>>>>> conjunction
> >>>>>>>>> with gpsuite, a tool for coordinating benchmarking multiple getput
> >>>>>>>>> processes.  This is how you would likely use getput on a typical
> >>>>>>>>> ceph
> >>>>>>>>> or
> >>>>>>>>> swift cluster, but since CBT builds the cluster and has it's own
> >>>>>>>>> way
> >>>>>>>>> for
> >>>>>>>>> launching multiple benchmark processes, it uses getput directly.
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Matt Benjamin
> >>>>>> Red Hat, Inc.
> >>>>>> 315 West Huron Street, Suite 140A
> >>>>>> Ann Arbor, Michigan 48103
> >>>>>>
> >>>>>> http://www.redhat.com/en/technologies/storage
> >>>>>>
> >>>>>> tel.  734-821-5101
> >>>>>> fax.  734-769-8938
> >>>>>> cel.  734-216-5309
> >>>>>> --
> >>>>>> To unsubscribe from this list: send the line "unsubscribe ceph-devel"
> >>>>>> in
> >>>>>> the body of a message to majordomo@xxxxxxxxxxxxxxx
> >>>>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

-- 
Matt Benjamin
Red Hat, Inc.
315 West Huron Street, Suite 140A
Ann Arbor, Michigan 48103

http://www.redhat.com/en/technologies/storage

tel.  734-821-5101
fax.  734-769-8938
cel.  734-216-5309
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux