Re: Ceph + VMware + Single Thread Performance

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

 



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.

> 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.

> > 
> > 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".

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).

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

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