Re: Ceph + VMware + Single Thread Performance

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

 



> -----Original Message-----
> From: Christian Balzer [mailto:chibi@xxxxxxx]
> Sent: 22 August 2016 03:00
> To: 'ceph-users' <ceph-users@xxxxxxxxxxxxxx>
> Cc: Nick Fisk <nick@xxxxxxxxxx>
> Subject: Re:  Ceph + VMware + Single Thread Performance
> 
> 
> Hello,
> 
> On Sun, 21 Aug 2016 09:57:40 +0100 Nick Fisk wrote:
> 
> >
> >
> > > -----Original Message-----
> > > From: ceph-users [mailto:ceph-users-bounces@xxxxxxxxxxxxxx] On
> > > Behalf Of Christian Balzer
> > > Sent: 21 August 2016 09:32
> > > To: ceph-users <ceph-users@xxxxxxxxxxxxxx>
> > > Subject: Re:  Ceph + VMware + Single Thread Performance
> > >
> > >
> > > Hello,
> > >
> > > On Sun, 21 Aug 2016 09:16:33 +0100 Brian :: wrote:
> > >
> > > > Hi Nick
> > > >
> > > > Interested in this comment - "-Dual sockets are probably bad and
> > > > will impact performance."
> > > >
> > > > Have you got real world experience of this being the case?
> > > >
> > > Well, Nick wrote "probably".
> > >
> > > Dual sockets and thus NUMA, the need for CPUs to talk to each other
> > > and share information certainly can impact things that are
> > very
> > > time critical.
> > > How much though is a question of design, both HW and SW.
> >
> > There was a guy from Redhat (sorry his name escapes me now) a few
> > months ago on the performance weekly meeting. He was analysing the CPU
> > cache miss effects with Ceph and it looked like a NUMA setup was
> > having quite a severe impact on some things. To be honest a lot of it
> > went over my head, but I came away from it with a general feeling that
> > if you can get the required performance from 1 socket, then that is probably a better bet. This includes only populating a single
> socket in a dual socket system. There was also a Ceph tech talk at the start of the year (High perf databases on Ceph) where the guy
> presenting was also recommending only populating 1 socket for latency reasons.
> >
> I wonder how complete their testing was and how much manual tuning they tried.
> As in:
> 
> 1. Was irqbalance running?
> Because it and the normal kernel strategies clash beautifully.
> Irqbalance moves stuff around, the kernel tries to move things close to where the IRQs are, cat and mouse.
> 
> 2. Did they try with manual IRQ pinning?
> I do, not that it's critical with my Ceph nodes, but on other machines it can make a LOT of difference.
> Like keeping the cores near (or at least on the same NUMA node) as the network IRQs reserved for KVM vhost processes.
> 
> 3. Did they try pining Ceph OSD processes?
> While this may certainly help (and make things more predictable when the load gets high), as I said above the kernel normally does a
> pretty good job of NOT moving things around and keeping processes close to the resources they need.
> 

>From what I remember I think they went to pretty long lengths to tune things. I think one point was that if you have a 40GB nic on socket, a NVME on another, no matter where the process runs, you are going to have a lot of traffic crossing between the sockets.

Here is the DB on Ceph one

http://ceph-users.ceph.narkive.com/1sj4VI4U/ceph-tech-talk-high-performance-production-databases-on-ceph

I don't think the recordings are available for the performance meeting one, but it was something to do with certain C++ string functions causing issue with CPU cache. Honestly can't remember much else.

> > Both of those, coupled with the fact that Xeon E3's are the cheapest way to get high clock speeds, sort of made my decision.
> >
> Totally agreed, my current HDD node design is based on the single CPU Supermicro 5028R-E1CR12L barebone, with an E5-1650 v3
> (3.50GHz) CPU.

Nice. Any ideas how they compare to the E3's?

> 
> > >
> > > We're looking here at a case where he's trying to reduce latency by
> > > all means and where the actual CPU needs for the HDDs are negligible.
> > > The idea being that a "Ceph IOPS" stays on one core which is hopefully also not being shared at that time.
> > >
> > > If you're looking at full SSD nodes OTOH a singe CPU may very well
> > > not be able to saturate a sensible amount of SSDs per node, so
> > a
> > > slight penalty but better utilization and overall IOPS with 2 CPUs may be the forward.
> >
> > Definitely, as always work out what your requirements are and design around them.
> >
> On my cache tier nodes with 2x E5-2623 v3 (3.00GHz) and currently 4 800GB DC S3610 SSDs I can already saturate all but 2 "cores", with
> the "right"
> extreme test cases.
> Normal load is of course just around 4 (out of 16) "cores".

Any idea what sort of IOP's that is? Wondering how it lines up against my estimate of 10000 on my single quad core.

> 
> And for the people who like it fast(er) but don't have to deal with VMware or the likes, instead of forcing the c-state to 1 just setting
> the governor to "performance" was enough in my case to halve latency (from about 2 to 1ms).

Is that also changing the c-state, I'm pretty sure that only effects the frequency.

> 
> This still does save some power at times and (as Nick speculated) indeed allows some cores to use their turbo speeds.

I did a test on my new boxes and the difference between max power savings and fulle frequency + cstate=1 was less than 10w.

> 
> So the 4-5 busy cores on my cache tier nodes tend to hover around 3.3GHz, instead of the 3.0GHz baseline for their CPUs.
> And the less loaded cores don't tend to go below 2.6GHz, as opposed to the 1.2GHz that the "powersave" governor would default to.
> 
> Christian
> 
> > >
> > > Christian
> > >
> > > > Thanks - B
> > > >
> > > > On Sun, Aug 21, 2016 at 8:31 AM, Nick Fisk <nick@xxxxxxxxxx> wrote:
> > > > >> -----Original Message-----
> > > > >> From: Alex Gorbachev [mailto:ag@xxxxxxxxxxxxxxxxxxx]
> > > > >> Sent: 21 August 2016 04:15
> > > > >> To: Nick Fisk <nick@xxxxxxxxxx>
> > > > >> Cc: wr@xxxxxxxx; Horace Ng <horace@xxxxxxxxx>; ceph-users
> > > > >> <ceph-users@xxxxxxxxxxxxxx>
> > > > >> Subject: Re:  Ceph + VMware + Single Thread
> > > > >> Performance
> > > > >>
> > > > >> Hi Nick,
> > > > >>
> > > > >> On Thu, Jul 21, 2016 at 8:33 AM, Nick Fisk <nick@xxxxxxxxxx> wrote:
> > > > >> >> -----Original Message-----
> > > > >> >> From: wr@xxxxxxxx [mailto:wr@xxxxxxxx]
> > > > >> >> Sent: 21 July 2016 13:23
> > > > >> >> To: nick@xxxxxxxxxx; 'Horace Ng' <horace@xxxxxxxxx>
> > > > >> >> Cc: ceph-users@xxxxxxxxxxxxxx
> > > > >> >> Subject: Re:  Ceph + VMware + Single Thread
> > > > >> >> Performance
> > > > >> >>
> > > > >> >> Okay and what is your plan now to speed up ?
> > > > >> >
> > > > >> > Now I have come up with a lower latency hardware design,
> > > > >> > there is not much further improvement until persistent RBD
> > > > >> > caching is
> > > > >> implemented, as you will be moving the SSD/NVME closer to the
> > > > >> client. But I'm happy with what I can achieve at the moment. You could also experiment with bcache on the RBD.
> > > > >>
> > > > >> Reviving this thread, would you be willing to share the details
> > > > >> of the low latency hardware design?  Are you optimizing for NFS or iSCSI?
> > > > >
> > > > > Both really, just trying to get the write latency as low as
> > > > > possible, as you know, vmware does everything with lots of
> > unbuffered
> > > small io's. Eg when you migrate a VM or as thin vmdk's grow.
> > > > >
> > > > > Even storage vmotions which might kick off 32 threads, as they
> > > > > all roughly fall on the same PG, there still appears to be a
> > > bottleneck with contention on the PG itself.
> > > > >
> > > > > These were the sort of things I was trying to optimise for, to make the time spent in Ceph as minimal as possible for each IO.
> > > > >
> > > > > So onto the hardware. Through reading various threads and experiments on my own I came to the following conclusions.
> > > > >
> > > > > -You need highest possible frequency on the CPU cores, which normally also means less of them.
> > > > > -Dual sockets are probably bad and will impact performance.
> > > > > -Use NVME's for journals to minimise latency
> > > > >
> > > > > The end result was OSD nodes based off of a 3.5Ghz Xeon E3v5
> > > > > with an Intel P3700 for a journal. I used the SuperMicro X11SSH-
> > > CTF board which has 10G-T onboard as well as 8SATA and 8SAS, so no
> > > expansion cards required. Actually this design as well as being very
> > > performant for Ceph, also works out very cheap as you are using low
> > > end server parts. The whole lot + 12x7.2k disks all goes
> > into
> > > a 1U case.
> > > > >
> > > > > During testing I noticed that by default c-states and p-states
> > > > > slaughter performance. After forcing max cstate to 1 and
> > forcing the
> > > CPU frequency up to max, I was seeing 600us latency for a 4kb write to a 3xreplica pool, or around 1600IOPs, this is at QD=1.
> > > > >
> > > > > Few other observations:
> > > > > 1. Power usage is around 150-200W for this config with 12x7.2k
> > > > > disks 2. CPU usage maxing out disks, is only around 10-15%, so plenty of headroom for more disks.
> > > > > 3. NOTE FOR ABOVE: Don't include iowait when looking at CPU usage 4.
> > > > > No idea about CPU load for pure SSD nodes, but based on the
> > > > > current disks, you could maybe expect ~10000iops per node,
> > > > > before maxing out CPU's 5. Single NVME seems to be able to
> > > > > journal 12 disks
> > > with no problem during normal operation, no doubt a specific benchmark could max it out though.
> > > > > 6. There are slightly faster Xeon E3's, but price/performance =
> > > > > diminishing returns
> > > > >
> > > > > Hope that answers all your questions.
> > > > > Nick
> > > > >
> > > > >>
> > > > >> Thank you,
> > > > >> Alex
> > > > >>
> > > > >> >
> > > > >> >>
> > > > >> >> Would it help to put in multiple P3700 per OSD Node to
> > > > >> >> improve performance for a single Thread (example Storage
> > > > >> >> VMotion)
> > > ?
> > > > >> >
> > > > >> > Most likely not, it's all the other parts of the puzzle which
> > > > >> > are causing the latency. ESXi was designed for storage arrays
> > > > >> > that service
> > > > >> IO's in 100us-1ms range, Ceph is probably about 10x slower than
> > > > >> this, hence the problem. Disable the BBWC on a RAID controller or SAN and you will the same behaviour.
> > > > >> >
> > > > >> >>
> > > > >> >> Regards
> > > > >> >>
> > > > >> >>
> > > > >> >> Am 21.07.16 um 14:17 schrieb Nick Fisk:
> > > > >> >> >> -----Original Message-----
> > > > >> >> >> From: ceph-users
> > > > >> >> >> [mailto:ceph-users-bounces@xxxxxxxxxxxxxx]
> > > > >> >> >> On Behalf Of wr@xxxxxxxx
> > > > >> >> >> Sent: 21 July 2016 13:04
> > > > >> >> >> To: nick@xxxxxxxxxx; 'Horace Ng' <horace@xxxxxxxxx>
> > > > >> >> >> Cc: ceph-users@xxxxxxxxxxxxxx
> > > > >> >> >> Subject: Re:  Ceph + VMware + Single Thread
> > > > >> >> >> Performance
> > > > >> >> >>
> > > > >> >> >> Hi,
> > > > >> >> >>
> > > > >> >> >> hmm i think 200 MByte/s is really bad. Is your Cluster in production right now?
> > > > >> >> > It's just been built, not running yet.
> > > > >> >> >
> > > > >> >> >> So if you start a storage migration you get only 200 MByte/s right?
> > > > >> >> > I wish. My current cluster (not this new one) would
> > > > >> >> > storage migrate at ~10-15MB/s. Serial latency is the
> > > > >> >> > problem, without being able to buffer, ESXi waits on an ack for each IO before sending the next.
> > > > >> >> > Also it submits the migrations in 64kb chunks, unless you
> > > > >> >> > get VAAI
> > > > >> >> working. I think esxi will try and do them in parallel, which will help as well.
> > > > >> >> >
> > > > >> >> >> I think it would be awesome if you get 1000 MByte/s
> > > > >> >> >>
> > > > >> >> >> Where is the Bottleneck?
> > > > >> >> > Latency serialisation, without a buffer, you can't drive
> > > > >> >> > the devices to 100%. With buffered IO (or high queue depths) I can max out the journals.
> > > > >> >> >
> > > > >> >> >> A FIO Test from Sebastien Han give us 400 MByte/s raw performance from the P3700.
> > > > >> >> >>
> > > > >> >> >> https://www.sebastien-han.fr/blog/2014/10/10/ceph-how-to-
> > > > >> >> >> test -if-y our -ssd-is-suitable-as-a-journal-device/
> > > > >> >> >>
> > > > >> >> >> How could it be that the rbd client performance is 50% slower?
> > > > >> >> >>
> > > > >> >> >> Regards
> > > > >> >> >>
> > > > >> >> >>
> > > > >> >> >> Am 21.07.16 um 12:15 schrieb Nick Fisk:
> > > > >> >> >>> I've had a lot of pain with this, smaller block sizes are even worse.
> > > > >> >> >>> You want to try and minimize latency at every point as
> > > > >> >> >>> there is no buffering happening in the iSCSI stack. This
> > > > >> >> >>> means:-
> > > > >> >> >>>
> > > > >> >> >>> 1. Fast journals (NVME or NVRAM) 2. 10GB or better
> > > > >> >> >>> networking 3. Fast CPU's (Ghz) 4. Fix CPU c-state's to C1 5.
> > > > >> >> >>> Fix CPU's Freq to max
> > > > >> >> >>>
> > > > >> >> >>> Also I can't be sure, but I think there is a metadata
> > > > >> >> >>> update happening with VMFS, particularly if you are
> > > > >> >> >>> using thin VMDK's, this can also be a major bottleneck.
> > > > >> >> >>> For my use case, I've switched over to NFS as it has
> > > > >> >> >>> given much more performance at scale and
> > > > >> >> less headache.
> > > > >> >> >>>
> > > > >> >> >>> For the RADOS Run, here you go (400GB P3700):
> > > > >> >> >>>
> > > > >> >> >>> Total time run:         60.026491
> > > > >> >> >>> Total writes made:      3104
> > > > >> >> >>> Write size:             4194304
> > > > >> >> >>> Object size:            4194304
> > > > >> >> >>> Bandwidth (MB/sec):     206.842
> > > > >> >> >>> Stddev Bandwidth:       8.10412
> > > > >> >> >>> Max bandwidth (MB/sec): 224 Min bandwidth (MB/sec): 180
> > > > >> >> >>> Average IOPS:           51
> > > > >> >> >>> Stddev IOPS:            2
> > > > >> >> >>> Max IOPS:               56
> > > > >> >> >>> Min IOPS:               45
> > > > >> >> >>> Average Latency(s):     0.0193366
> > > > >> >> >>> Stddev Latency(s):      0.00148039
> > > > >> >> >>> Max latency(s):         0.0377946
> > > > >> >> >>> Min latency(s):         0.015909
> > > > >> >> >>>
> > > > >> >> >>> Nick
> > > > >> >> >>>
> > > > >> >> >>>> -----Original Message-----
> > > > >> >> >>>> From: ceph-users
> > > > >> >> >>>> [mailto:ceph-users-bounces@xxxxxxxxxxxxxx]
> > > > >> >> >>>> On Behalf Of Horace
> > > > >> >> >>>> Sent: 21 July 2016 10:26
> > > > >> >> >>>> To: wr@xxxxxxxx
> > > > >> >> >>>> Cc: ceph-users@xxxxxxxxxxxxxx
> > > > >> >> >>>> Subject: Re:  Ceph + VMware + Single Thread
> > > > >> >> >>>> Performance
> > > > >> >> >>>>
> > > > >> >> >>>> Hi,
> > > > >> >> >>>>
> > > > >> >> >>>> Same here, I've read some blog saying that vmware will
> > > > >> >> >>>> frequently verify the locking on VMFS over iSCSI, hence
> > > > >> >> >>>> it will have much slower performance than NFS (with
> > > > >> >> >>>> different
> > > > >> locking mechanism).
> > > > >> >> >>>>
> > > > >> >> >>>> Regards,
> > > > >> >> >>>> Horace Ng
> > > > >> >> >>>>
> > > > >> >> >>>> ----- Original Message -----
> > > > >> >> >>>> From: wr@xxxxxxxx
> > > > >> >> >>>> To: ceph-users@xxxxxxxxxxxxxx
> > > > >> >> >>>> Sent: Thursday, July 21, 2016 5:11:21 PM
> > > > >> >> >>>> Subject:  Ceph + VMware + Single Thread
> > > > >> >> >>>> Performance
> > > > >> >> >>>>
> > > > >> >> >>>> Hi everyone,
> > > > >> >> >>>>
> > > > >> >> >>>> we see at our cluster relatively slow Single Thread Performance on the iscsi Nodes.
> > > > >> >> >>>>
> > > > >> >> >>>>
> > > > >> >> >>>> Our setup:
> > > > >> >> >>>>
> > > > >> >> >>>> 3 Racks:
> > > > >> >> >>>>
> > > > >> >> >>>> 18x Data Nodes, 3 Mon Nodes, 3 iscsi Gateway Nodes with tgt (rbd cache off).
> > > > >> >> >>>>
> > > > >> >> >>>> 2x Samsung SM863 Enterprise SSD for Journal (3 OSD per
> > > > >> >> >>>> SSD) and 6x WD Red 1TB per Data Node as OSD.
> > > > >> >> >>>>
> > > > >> >> >>>> Replication = 3
> > > > >> >> >>>>
> > > > >> >> >>>> chooseleaf = 3 type Rack in the crush map
> > > > >> >> >>>>
> > > > >> >> >>>>
> > > > >> >> >>>> We get only ca. 90 MByte/s on the iscsi Gateway Servers with:
> > > > >> >> >>>>
> > > > >> >> >>>> rados bench -p rbd 60 write -b 4M -t 1
> > > > >> >> >>>>
> > > > >> >> >>>>
> > > > >> >> >>>> If we test with:
> > > > >> >> >>>>
> > > > >> >> >>>> rados bench -p rbd 60 write -b 4M -t 32
> > > > >> >> >>>>
> > > > >> >> >>>> we get ca. 600 - 700 MByte/s
> > > > >> >> >>>>
> > > > >> >> >>>>
> > > > >> >> >>>> We plan to replace the Samsung SSD with Intel DC P3700
> > > > >> >> >>>> PCIe NVM'e for the Journal to get better Single Thread Performance.
> > > > >> >> >>>>
> > > > >> >> >>>> Is anyone of you out there who has an Intel P3700 for
> > > > >> >> >>>> Journal an can give me back test results with:
> > > > >> >> >>>>
> > > > >> >> >>>>
> > > > >> >> >>>> rados bench -p rbd 60 write -b 4M -t 1
> > > > >> >> >>>>
> > > > >> >> >>>>
> > > > >> >> >>>> Thank you very much !!
> > > > >> >> >>>>
> > > > >> >> >>>> Kind Regards !!
> > > > >> >> >>>>
> > > > >> >> >>>> _______________________________________________
> > > > >> >> >>>> ceph-users mailing list ceph-users@xxxxxxxxxxxxxx
> > > > >> >> >>>> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
> > > > >> >> >>>> _______________________________________________
> > > > >> >> >>>> ceph-users mailing list ceph-users@xxxxxxxxxxxxxx
> > > > >> >> >>>> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
> > > > >> >> >> _______________________________________________
> > > > >> >> >> ceph-users mailing list
> > > > >> >> >> ceph-users@xxxxxxxxxxxxxx
> > > > >> >> >> http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
> > > > >> >
> > > > >> >
> > > > >> > _______________________________________________
> > > > >> > ceph-users mailing list
> > > > >> > ceph-users@xxxxxxxxxxxxxx
> > > > >> > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
> > > > >
> > > > > _______________________________________________
> > > > > ceph-users mailing list
> > > > > ceph-users@xxxxxxxxxxxxxx
> > > > > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
> > > > _______________________________________________
> > > > ceph-users mailing list
> > > > ceph-users@xxxxxxxxxxxxxx
> > > > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
> > > >
> > >
> > >
> > > --
> > > Christian Balzer        Network/Systems Engineer
> > > chibi@xxxxxxx   	Global OnLine Japan/Rakuten Communications
> > > http://www.gol.com/
> > > _______________________________________________
> > > ceph-users mailing list
> > > ceph-users@xxxxxxxxxxxxxx
> > > http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com
> >
> >
> 
> 
> --
> Christian Balzer        Network/Systems Engineer
> chibi@xxxxxxx   	Global OnLine Japan/Rakuten Communications
> http://www.gol.com/

_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com



[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux